excel表格中刪除重復數據有什么方法
excel表格中刪除重復數據有什么方法
在工作中,經常會有需要在對原始記錄清單進行整理時,剔除其中一些重復項。所謂的重復項,通常是指某些記錄在各個字段中都有相同的內容。以下是學習啦小編為您帶來的關于excel表格中刪除重復數據的方法,希望對您有所幫助。
excel表格中刪除重復數據的方法
例如下面圖中的第三行數據記錄和第五行數據記錄就是完全相同的兩條記錄,除此以外還有第六行和第十行也是一組相同記錄。
在另外一些場景下,用戶也許會希望找出并剔除某幾個字段相同的但并不完全重復的“重復項”,例如下面圖中的第7行記錄和第12行記錄中的【姓名】字段內容相同,但其他字段的內容則不完全相同。
以上這兩種重復項的類型有所不同,在剔除操作的實現上也略有區(qū)別,但本質上并無太大差別,可以互相借鑒參考。下面將以這兩種場景為例,將介紹幾種常用的刪除重復項操作技巧。
1、【刪除重復項】功能
刪除重復項是Excel 2007版本以后新增的功能,因此適用于Excel 2007及其后續(xù)版本。將活動單元格定位在數據清單中,然后在功能區(qū)上依次單擊【數據】——【刪除重復項】,會出現【刪除重復項】對話框。對話框中會要求用戶選擇重復數據所在的列(字段)。
假定我們將“重復項”定義為所有字段的內容都完全相同的記錄,那么在這里就要把所有列都勾選上。而如果只是把某列相同的記錄定義為重復項,例如文章開頭所提到的第二種場景情況,那么只需要勾選那一列字段即可。
在勾選所有列以后,單擊【確定】按鈕,就會自動得到刪除重復項之后的數據清單,剔除的空白行會自動由下方的數據行填補,但不會影響數據表以外的其他區(qū)域。效果如下圖所示:
2、高級篩選
在2007版出現以前,【高級篩選】功能一直是刪除重復項的利器。
將活動單元格定位在數據清單中,然后在功能區(qū)上依次單擊【數據】——【高級】(2003版本中的操作路徑是【數據】——【篩選】——【高級篩選】),會出現【高級篩選】對話框。
對話框中會要求用戶指定列表區(qū)域,就是數據清單所在的單元格區(qū)域,默認情況下會自動生成。篩選方式上一般選擇“將篩選結果復制到其他位置”,以方便刪除重復項以后的處理操作。指定這種方式以后,對話框中會要求用戶指定“復制到”哪里,也就是刪除重復項以后的數據清單放置位置,用戶指定其左上角單元格的位置即可,在這個例子中我們設定為E1單元格。最后一項也是刪除重復項最關鍵的一個選項必須勾選:【選擇不重復的記錄】。如下圖所示:
單擊【確定】按鈕以后,就會在E1單元格開始的區(qū)域中生成剔除重復項以后的另一份數據清單,效果如下圖所示:
假定按照第二種場景的方式來定義重復項,就是需要刪除所有【姓名】字段內容重復的記錄,可以這樣操作:
在數據清單中,選中【姓名】字段所在的區(qū)域A1:A12單元格,然后在功能區(qū)上依次單擊【數據】——【高級】(2003版本中的操作路徑是【數據】——【篩選】——【高級篩選】),會出現【高級篩選】對話框。篩選方式選擇“在原有區(qū)域顯示篩選結果”,【選擇不重復的記錄】復選框同樣必須勾選,如下圖所示:
選擇【在原有區(qū)域顯示篩選結果】的方式,使得對A列不重復項的篩選結果能夠同時影響到其他字段上。單擊【確定】按鈕后,篩選結果如下圖所示。將這個篩選的結果復制粘貼出來,就等到一份剔除姓名字段重復項以后的新清單。
需要補充的一點是,對于姓名字段相同的記錄,這樣的剔除操作過后,保留的是最先出現的記錄。例如在第七行和第十二行兩個“吳凡”之間,Excel保留的是最先出現的第七行記錄,而剔除了后面的第十二行記錄。
3、使用公式
如果會一點函數公式,那么用函數公式配合篩選的方式來操作會更靈活多變一些,可以適應更多復雜條件。
在D列增加一個輔助公式,在D2單元格中輸入公式:=A2&B2&C2,然后向下復制填充,生成的一列公式結果是將各條記錄中的三個字段內容合并在一個單元格中。然后在E列再增加一個輔助公式,在E2單元格中輸入公式:=COUNTIF(D2:D,D2),特別注意公式中絕對引用符號$的使用位置。將公式向下復制填充,得到下面圖中所示的結果:
COUNTIF函數的作用是統(tǒng)計某個區(qū)間內,與查詢值相同的數據的個數,上面那個公式中的D2:D這種絕對引用和相對引用相組合的方式就可以在公式向下復制的過程中形成一個隨位置變化的動態(tài)區(qū)域,使得COUNTIF函數每次都只跟自己下方的區(qū)域中的數據進行對比,而不會牽涉到上方的數據。因此在第三行的時候,會找到2條與“李明28研發(fā)部”相同的記錄,而到了第五行的時候,就只找到了一條匹配記錄。
通過這個公式結果可以發(fā)現,所有E列運算結果大于等于2的記錄(如果有更多的重復,結果會大于2)就是我們需要剔除的重復項。這個時候,使用自動篩選功能,在E列篩選出大于1所在的行,然后刪除整行,再恢復到非篩選狀態(tài),就能得到最后所需的清單,如下圖所示:
在上面的操作中之所以要將三個字段內容合并在一起,是因為我們在第一個場景中將“重復項”定義為所有字段內容都相同,因此將這三個字段的內容同時合并在一起進行比較,相當于邏輯運算中的”與“運算。
假設需要按照第二場景中的定義來進行剔除操作,就不再需要D列這個過渡公式,而是可以直接以A列作為COUNTIF函數的對比區(qū)域,可以使用公式:=COUNTIF(A2:A,A2) 就可以實現相同的效果。需要補充說明的是,這個方法在剔除操作后,所保留下來的記錄是重復記錄中最晚出現的那條記錄。
同樣是第一場景,也可以用一個稍微復雜一些的公式來替代D、E兩列的公式:=SUMPRODUCT(1*(A2&B2&C2=A2:A&B2:B&C2:C)) 公式的原理與前面相同。
猜你喜歡: