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 ... ...去核對,這種效率低且單調。我們要學會跳出思維圈,利用一些輔助工具去幫助自己更好的工作,更好的去解決問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM