vlookup刪除重複項(lookup函式提取重複項對應值)

在EXCEL表格裡運算元據的時候,往往需要用到刪除重複值,而如何刪除一列資料裡的重複值呢?最簡單的辦法當屬標準功能了,選中資料列,點選“資料”選項卡里的重複值,就可以把重複的資料刪除了,但凡事都有例外的情況,如果這列原始資料經常會更新,增加、刪除或是修改,那我們就得每改一次原始資料,就得操作一次“刪除重複值”,那能不能自動從原始資料裡提取唯一值,不管原始資料如何變化,都能自己更新呢?當然可以,這就需要用到函式公式了。下面我們分別用兩種方法來去除重複值,並看看它們之間的區別吧!

直接刪除重複值

如果所示,A列有很多的編號,標記了顏色的都是重複資料,現在我們將資料複製到F列,全選,點選選單欄上“資料-刪除重複值”。

彈出視窗,選擇列,取消勾選“資料包含標題”,因為F列沒有標題。點選確定。

彈出刪除結果,F列保留了唯一值。

此方法簡單、快,唯一的毛病就是如果A列資料發生了變化後,不會自動更新。

使用公式提取唯一值

先上函式公式:=LOOKUP(1,0/(COUNTIF($C$1:C1,$A$2:$A$46)=0),$A$2:$A$46)

從公式裡可以看出這裡使用了兩個函式進行了組合,LOOKUP查詢函式和COUNTIF計算符合條件的單元格數目。

先看COUNTIF函式,COUNTIF($C$1:C1,$A$2:$A$46)=0,這裡使用COUNTIF函式計算出當前行上方的編號和A列編號是否重複,不重複則返回0,符合“=0”的條件並返回邏輯值TRUE,否則返回FALSE。

在這裡TRUE表示1,FALSE表示0,而用“0/”則遇到FALSE的情況會返回錯誤值#DIV/0!,因為0不能作為除數,

在使用LOOKUP函式進行查詢,

這裡使用了LOOKUP函式的經典用法“LOOKUP(1,0/(條件區域),查詢區域)”

“0/”的目的就是把符合條件的變成0,其餘的變成錯誤值,而LOOKUP函式在查詢的時候會自動忽略錯誤值,如果條件裡只有一個滿足的,那剛好返回這個0對應位置所在的資料,如果條件裡有多個滿足,就會返回最後一個計算出來的0對應位置的資料。

注意這裡的A2:A46作為固定資料來源,不管是在COUNTIF還是在LOOKUP函式裡都需要新增絕對引用符號,而COUNTIF裡的第一個引數也需要新增絕對引用固定第一個單元格引用,第二個單元格引用不能新增絕對符號,這樣公式才能往下拉動。

選中單元格,往下拖動公式,直到返回“#N/A”錯誤值。上方的編號就是從A列提取出來的唯一編號,因為LOOKUP多個符合條件的記錄是返回最後一條的資料,故唯一值的順序和原始資料的順序是不一樣的。

如果不想把錯誤值符號顯示出來,這裡可以新增一個IFERROR函式在前面,這樣就能將錯誤值返回空白。完整公式為“=IFERROR(LOOKUP(1,0/(COUNTIF($C$1:C1,$A$2:$A$46)=0),$A$2:$A$46),"")”。

公式裡的“1,0/”,可以替換為任意兩個數字,但第一個數字要比第二個數字大即可。

修改A列的資料,C列會自動重新計算,自動更新。

最後,我們再來總結下:

如果只是簡單的想要刪除重複資料,使用標準的選單功能,簡單好用。

如果需要自動更新的提取唯一值,使用函式公式,儲存下來,不理解也能套用,只需要修改裡面的單元格引用地址即可。