出錯誤並不可怕,怕的是不知道怎麼解決。本文就教你破解VLOOKUP函數病症的良藥。
▼
在總結VLOOKUP函數錯誤之前,我們先來回顧下VLOOKUP函數的語法:
=VLOOKUP(查找對象,查找範圍,返回列數,精確匹配或者近似匹配)
了解了Vlookup函數的基本語法,可還是經常會遇到一些錯誤。於是滿懷期待了走進了診室,希望能夠藥到病除。
NO.1:參數1使用錯誤
通常對於批量查找,參數1會使用引用單元格,這就涉及到引用方式的問題,稍微不注意,就可能造成查找錯誤。
比如,在F2輸入公式=VLOOKUP($E$2,B:C,2,0),向下複製填充,結果三個單元格中返回的值都是89,顯然高書記和李書記的成績是錯誤的。
錯誤原因:第一個參數採用了絕對引用,這樣在複製填充時,單元格引用不會變化,所以一直查找的是「陸亦可」對應的成績。
解決方法:對於VLOOKUP的第一個參數,如果公式需要詳細複製填充,則需要使用行的相對引用,所以公式改為=VLOOKUP($E2,B:C,2,0)或=VLOOKUP(E2,B:C,2,0)均可。
NO.2:參數2首行錯誤
VLOOKUP函數中,參數2的限制很多,是最容易出錯的地方。如圖查找三位同事的成績,結果均返回錯誤值。
錯誤原因:VLOOKUP函數的第二個參數是查找區域,這個區域不是隨便選取的,它必須滿足的條件之一就是:參數1(查找對象)必須位於該區域的第1列。
本例選取的參數2為A:C,其中姓名列位於此區域的第二列,所以無法正確查找。
解決方法:將公式修改為=VLOOKUP(E2,B:C,2,0),即函數的第二個參數設置為B:C。
NO.3:參數2區域範圍錯誤
如圖所示,參數2設置為B:C,可是查找還是出錯了。
錯誤原因:參數2必須滿足的條件之二就是:這個區域一定要包含需要返回的我們需要返回成績,但是第2個參數B:C根本就沒有包括D列的成績。
解決方法:將公式修改為=VLOOKUP(F3,B:C,3,0),是第二參數包含需要返回的值。
NO.4:參數2區域中列的順序錯誤
如圖,使用姓名查找組別,結果返回錯誤值。
錯誤原因:本例中VLOOKUP函數的第二參數為A:B,其實這兩有兩個錯誤。一是參數1並不在參數2選定區域的第一列;第二是返回值「組別」在查找值的左側,這是不允許的。
解決方法:①最簡單的方法,將A、B列數據互換,然後再使用VLOOKUP查找;②使用index+match組合查找
NO.5:參數3使用錯誤
參數3「返回的列數」指的是在參數2這個區域中的列數,它不一定等於在Excel表格中的列數,如果將參數3設置為「4」,結果返回錯誤值。
錯誤原因:成績位於參數2選定的區域「B:D」中的第三列,而不是第四列,因此參數3需要設置為3.
修改:將公式修改為=VLOOKUP(F3,B:D,3,0)即可。
NO.6:參數4設置錯誤。
如圖所示,最後一個參數設置為1,結果返回的數值與姓名對不上號。
錯誤原因:VLOOKUP函數的參數4為0或省略時表示精確查找,非0值時表示模糊查找。這裡設置為1,所以進行的是模糊查找。模糊查找,會找到和它最接近,但比它小的那個數。因此返回的數值不正確。
修改方法:將公式改為
=VLOOKUP(F2,B:D,3,)
或者=VLOOKUP(F2,B:D,3,0)
除了參數設置錯誤之外,如果要查找的數據源不符合規範,也會出現錯誤。
NO.1:數據表中含有多餘的空格。
如圖查找成員的成績,陸亦可的成績能夠正確查找,陳海的卻出錯。
錯誤原因:源數據中,為了使姓名對齊,在陳海姓名中間添加了空格。這樣使用不帶空格的「陳海」去匹配,當然查找不到了。
解決方法:使用TRIM或者手工刪除空格。如果希望兩個字的姓名與三個字的對齊,可以採用分散對齊的方式,如圖所示。
NO.2:查找對象與源數據格式不一致
小白雷哥需要通過員工工號查詢到電腦號碼。使用=VLOOKUP(G3,A2:D12,4,1) 查詢時,返回錯誤值#N/A 。
診斷分析:這是因為查找值(11208)與查找範圍第一列(工號)數據格式不一致導致的。在vlookup函數查找過程中,文本型數字和數值型數字會被認為不同的字符。所以造成無法成功查找。
解決方案:將源數據中工號一列更改為文本類型,然後再查找。
函數中的單元格引用,「混合引用」的方式是最複雜的,也是最容易出錯的。不管是參數1,還是參數2都會有這樣的問題。
如圖使用COLUMN函數與VLOOKUP函數嵌套,一次返回多列查找值,在G2中輸入公式
=VLOOKUP(F2,B2:D9,COLUMN(B1),0)
然後向下拖動複製,並向右拖動複製,但是返回的值有一部分是錯誤的。
錯誤原因:①由於第二個參數B2:D9是相對引用,所以向下複製公式後會自動更改為B3:D10,B4:D11……而F4中的陳海所在的行,不在B4:D11區域中,從而造成查找失敗。
②而向右複製時,參數1會變為G3,因此查找對象變為了性別,從而造成查找失敗。
解決方法:把參數2由相對引用改為絕對引用;參數1改為混合引用。即公式為=VLOOKUP($F2,$B$2:$D$9,COLUMN(B1),0)
這樣既能確保向下複製時可以查找不同的姓名,又能確保向右複製時查找對象不會篡位。
這些VLOOKUP錯誤種類幾乎囊括了所有的查找情況,如果碰到了錯誤,而你剛好有解決方案,效率豈不大增!
圖文作者:安偉星
原載公眾號 精進Excel