經常被人問到怎么對兩份Excel數據進行比對,提問的往往都很籠統;在工作中,有時候會需要對兩份內容相近的數據記錄清單進行比對,需求不同,比對的的目標和要求也會有所不同。下面Office辦公助手(www.officezhushou.com)的小編根據幾個常見的應用環境介紹一下Excel表格中數據比對和查找的技巧。
應用案例一:比對取出兩表的交集(相同部分)
Sheet1中包含了一份數據清單A,sheet2中包含了一份數據清單B,要取得兩份清單共有的數據記錄(交集),也就是要找到兩份清單中的相同部分。
方法1:高級篩選
高級篩選是處理重復數據的利器。
選中第一份數據清單所在的數據區域,在功能區上依次單擊【數據】——【高級】(2003版本中菜單操作為【數據】——【篩選】——【高級篩選】),出現【高級篩選】對話框。
在對話框中,篩選【方式】可以根據需求選取,例如這里選擇“將篩選結果復制到其他位置”;【列表區域】就是之前所選中的第一份數據清單A所在的單元格區域;【條件區域】則選取另外那份清單B所在的單元格區域。如下圖所示:
點擊【確定】按鈕后,就可以直接得到兩份清單的交集部分,效果如下圖。其中兩個清單中雖然都有【西瓜】和【菠蘿】,但是由于數量不一致,所以沒有作為相同記錄被提取出來。
這個操作的原理,就是利用了高級篩選功能對于匹配指定條件的記錄進行篩選的功能,把兩張表中的任意一張作為條件區域,在另外一張表中就能篩選出與之相匹配的記錄,忽略掉其他不相關的記錄。
需要注意的是,使用高級篩選的時候務必注意兩個清單的標題行要保持一致(高級篩選中作為條件區域的前提),并且在選取【列表區域】和【條件區域】的時候都要把標題行的范圍包含在其中。
方法2:公式法
使用公式進行比對的方法有很多,如果是單列數據對比比較常用的函數是COUNTIF函數,如果是多列數據記錄對比,SUMPRODUCT函數比較勝任。
在其中一張清單的旁邊輸入公式:
=SUMPRODUCT((A2&B2=Sheet2!A$2:A$13&Sheet2!B$2:B$13)*1)
并向下復制填充。其中的Sheet2!A$1:A$13和Sheet2!B$2:B$13是另一張清單中的兩列數據區域,需要根據實際情況修改。公式結果等于1的記錄就是兩個清單的交集部分,如下圖所示:
應用案例二:取出兩表的差異記錄
要在某一張表里取出與另一張表的差異記錄,就是未在另外那張清單里面出現的部分,其原理和操作都和上面第一種場景的差不多,所不同的只是篩選后所選取的集合正好互補。
方法1:高級篩選
先將兩個清單的標題行更改使之保持一致,然后選中第一份數據清單所在的數據區域,在功能區上依次單擊【數據】——【高級】,出現【高級篩選】對話框。在對話框中,篩選方式選擇“在原有區域顯示篩選結果”;【列表區域】和【條件區域】的選取和前面場景1完全相同,如下圖所示:
點擊【確定】完成篩選,將篩選出來的記錄全部選中按【Del】鍵刪除(或做標記),然后點擊【清除】按鈕(2003版本中為【全部顯示】按鈕)就可以恢復篩選前的狀態得到最終的結果,如下圖所示:
方法2:公式法
使用公式的話,方法和場景1完全相同,只是最后需要提取的是公式結果等于0的記錄。
應用案例三:取出關鍵字相同但數據有差異的記錄
前面的兩份清單中,【西瓜】和【菠蘿】的貨品名稱雖然一致,但在兩張表上的數量卻不相同,在一些數據核對的場景下,就需要把這樣的記錄提取出來。
方法1:高級篩選
高級篩選當中可以使用特殊的公式,使得高級篩選的功能更加強大。
第一張清單所在的sheet里面,把D1單元格留空,在D2單元格內輸入公式:
=VLOOKUP(A2,Sheet2!$A$2:$B$13,2,0)<>B2
然后在功能區上依次單擊【數據】——【高級】,出現【高級篩選】對話框。在對話框中,篩選方式選擇“在原有區域顯示篩選結果”;【列表區域】選取第一張清單中的完整數據區域,【條件區域】則選取剛剛特別設計過的D1:D2單元格區域,如下圖所示:
點擊【確定】按鈕以后,就可以得到篩選結果,就是第一張中貨品名稱與第二張表相同但數量卻不一致的記錄清單,如下圖所示:
同樣的,照此方法在第二張清單當中操作,也可以在第二張清單中找到其中與第一張清單數據有差異的記錄。
這個方法是利用了高級篩選中可以通過自定義公式來添加篩選條件的功能,有關高級篩選中使用公式作為條件區域的用法,可參考本站發布的;另外一篇教程:
Excel中數據庫函數和高級篩選條件區域設置方法詳解
http://www.officezhushou.com/excel/jiqiao/2924.html
方法2:公式法
使用公式還是可以利用前面用到的SUMPRODUCT函數,在其中一張清單的旁邊輸入公式:
=SUMPRODUCT((A2=Sheet2!A$2:A$13)*(B2<>Sheet2!B$2:B$13))
并向下復制填充。公式中的包含了兩個條件,第一個條件是A列數據相同,第二個條件是B列數據不相同。公式結果等于1的記錄就是兩個清單中數據有差異的記錄,如下圖所示。這個例子中也可以使用更為人熟知的VLOOKUP函數來進行匹配查詢,但是VLOOKUP只適合單列數據的匹配,如果目標清單中包含了更多字段數據的差異對比,還是SUMPRODUCT函數的擴展性更強一些。