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