問題描述:數據的特點是,在同一個excel文件中存在兩個sheet,他們的數據結構是一樣的,其中一箇中的數據是另一個的子集,目的是要找出他們的不同,即找出在那張大些的sheet中存在,但在那張小些的sheet中不存在的記錄(行),並把它保存到第三個sheet或某個sheet的其他空白地方
方法1:使用excel中的函數match來進行匹配,其中參數需要使用絕對引用。匹配完成後再用if來篩選。原理如下:把sheet1中的每一個值在sheet2中查找一遍,lookup_value設爲sheet1中待查找的一個單元格,lookup_array設爲sheet2中包含有sheet1的重複數據的區域(一定爲絕對引用才行),match_type設爲0.在sheet1中的一個單元格寫好後使用自動填充.再採用if語句進行判斷match成功與否,而賦予單元格不同的值.再使用篩選,選出match failed的記錄
函數:match(look_value,look_array,[match_type])
if(logic_test,[value_if_true],[value_if_false]) #此處的logic_test可以使用相關子函數來判斷,如是否爲#N/A --- ISNA(A1)
=MATCH(sheet1!A:A,sheet2!A:A,0) #得到的結果表示對應的行號
=IF(ISNA(D2),"不存在","存在")
match | 修改後的數據對比 |
158 | 存在 |
96 | 存在 |
96 | 存在 |
方法2:寫perl腳本來完成數據匹配與表格填充。僅爲練手,待補充。此問題使用方法1足矣。