Excel—使用if(countif())表達式來篩選兩個表格中相同的數據
- 2020 年 9 月 20 日
- 筆記
- excel比對兩個Sheet中的數據, excel比對兩組數據, MySQL, mysql轉為excel
關注微信公眾號: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")
IF()
:IF()是條件判斷函數;COUNTIF()
:是統計函數,其中,Sheet1
代表的是另一個表格的數據,A:A
表示統計區域,A1
表示A1單元格的內容。"T"
:可自定義引號內的文字,是if如果成立,則會在單元格中輸出該自定義內容。"F"
:可自定義引號內的文字,是if如果不成立,則會在單元格中輸出該自定義內容。
操作詳解
場景說明
假設Sheet1為參考數據,Sheet2為需要比對的數據。比對Sheet2中是否在Sheet2中有相同的數據。
操作步驟
- 填寫表達式:
=IF(COUNTIF(Sheet1!A:A,A1),"T","F")
並回車。
基準表格數據是在Sheet1
中,比對的範圍是A:A
,單元格是在A1
。T
表示Sheet2
中的這個數據在Sheet1
中存在,F
表示不存在。
- 下拉比對
結果顯示:
注意:
比對結果的描述資訊可以自定義
總結
至此,我們就學會如何通過表達式來比對完兩個數據表中的數據,是不是很贊?遇到問題的時候,我們不能死教條,一個一個的通過select * from ... ...
去核對,這種效率低且單調。我們要學會跳出思維圈,利用一些輔助工具去幫助自己更好的工作,更好的去解決問題。