• Excel—使用if(countif())表达式来筛选两个表格中相同的数据


    技术公众号:后端技术解忧铺
    关注微信公众号:CodingTechWork,一起学习进步。

    引言

      在线上运维的过程中,遇到一个头疼的事情,有一些合作公司的数据直接从平台上down下来是一个excel,然后发到研发手里去数据库中核对是否存在,怎么办呢?一般死脑筋方法就是使用sql语句select * from tb_name where colume_name="xxx";去核对是否存在该记录,完了,完全陷入到非sql不可的坑了。
      在思考如何更好的去比对两堆类型相同的数据时,除了程序员用后端的方法(不管是sql还是写脚本、程序工具类),其实还可以跳出这个思维圈,本文就总结一下如何通过我们日常用到的excel来比对两个数据表,当然我们也要解决表数据转为excel的问题。

    sql转excel

    方式

      我们先要解决一个mysql数据库中的数据如何转出到excel中的问题。
      进入到sql命令行选择数据库后,执行:select * from tbl_name into outfile '/home/outfile/test.xls';

    问题

      我们可能会遇到一个ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement的报错,这个时候可以使用show variables like '%secure%';查看:

    mysql> show variables like '%secure%';
    +--------------------------+-----------------------+
    | Variable_name            | Value                 |
    +--------------------------+-----------------------+
    | require_secure_transport | OFF                   |
    | secure_auth              | ON                    |
    | secure_file_priv         | /var/lib/mysql-files/ |
    +--------------------------+-----------------------+
    3 rows in set (0.01 sec)
    

      所以,我们可以在不修改数据库的权限情况下,选择这个默认路径进行输出:select * from tbl_name into outfile '/var/lib/mysql-files/test.xls';
      mysql数据转为excel这个问题解决后,我们就可以安心去解决excel中如何比对两个不同表格中的数据。

    表达式

      我们先来了解一下今天登场的主角:IF(COUNTIF())表达式。

    分解

    =IF(COUNTIF(Sheet1!A:A,A1),"T","F")
    
    1. IF():IF()是条件判断函数;
    2. COUNTIF():是统计函数,其中,Sheet1代表的是另一个表格的数据,A:A表示统计区域,A1表示A1单元格的内容。
    3. "T":可自定义引号内的文字,是if如果成立,则会在单元格中输出该自定义内容。
    4. "F":可自定义引号内的文字,是if如果不成立,则会在单元格中输出该自定义内容。

    操作详解

    场景说明

      假设Sheet1为参考数据,Sheet2为需要比对的数据。比对Sheet2中是否在Sheet2中有相同的数据。
    在这里插入图片描述
    在这里插入图片描述

    操作步骤

    1. 填写表达式:=IF(COUNTIF(Sheet1!A:A,A1),"T","F")并回车。
      基准表格数据是在Sheet1中,比对的范围是A:A,单元格是在A1T表示Sheet2中的这个数据在Sheet1中存在,F表示不存在。
      在这里插入图片描述
    2. 下拉比对
      在这里插入图片描述
      结果显示:
      在这里插入图片描述

    注意:
    比对结果的描述信息可以自定义
    在这里插入图片描述

    总结

      至此,我们就学会如何通过表达式来比对完两个数据表中的数据,是不是很赞?遇到问题的时候,我们不能死教条,一个一个的通过select * from ... ...去核对,这种效率低且单调。我们要学会跳出思维圈,利用一些辅助工具去帮助自己更好的工作,更好的去解决问题。

  • 相关阅读:
    【Android】给Android Studio设置代理
    Android studio如何使用SVN进行版本控制?
    Android studio
    nohup java -jar 启动java项目
    Linux命令发送Http GET/POST请求
    Java 读取配置文件的几种方式
    java -jar 报错 Error: A JNI error has occurred, please check your installation and try again
    java.net 发送http请求
    textarea高度自适应
    webrtc切换媒体设备
  • 原文地址:https://www.cnblogs.com/Andya/p/13701310.html
Copyright © 2020-2023  润新知