專業從事查詢功能的函式:VLOOKUP,引數眾多,“脾氣”暴躁,規則複雜,一不留心就會出錯。
出錯誤並不可怕,怕的是不知道怎麼解決。本文就教你破解VLOOKUP函式病症的良藥。
▼
在總結VLOOKUP函式錯誤之前,我們先來回顧下VLOOKUP函式的語法:
=VLOOKUP(查詢物件,查詢範圍,返回列數,精確匹配或者近似匹配)
— 01 —
引數使用錯誤
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)
— 02 —
查詢匹配的錯誤
除了引數設定錯誤之外,如果要查詢的資料來源不符合規範,也會出現錯誤。
NO.1:資料表中含有多餘的空格。
如圖查詢成員的成績,陸亦可的成績能夠正確查詢,陳海的卻出錯。
錯誤原因:源資料中,為了使姓名對齊,在陳海姓名中間添加了空格。這樣使用不帶空格的“陳海”去匹配,當然查詢不到了。
NO.2:查詢物件與源資料格式不一致
小白雷哥需要透過員工工號查詢到電腦號碼。使用=VLOOKUP(G3,A2:D12,4,1) 查詢時,返回錯誤值#N/A 。
診斷分析:這是因為查詢值(11208)與查詢範圍第一列(工號)資料格式不一致導致的。在vlookup函式查詢過程中,文字型數字和數值型數字會被認為不同的字元。所以造成無法成功查詢。
解決方案:將源資料中工號一列更改為文字型別,然後再查詢。
— 03 —
單元格引用導致的錯誤
函式中的單元格引用,“混合引用”的方式是最複雜的,也是最容易出錯的。不管是引數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錯誤種類幾乎囊括了所有的查詢情況,如果碰到了錯誤,而你剛好有解決方案,效率豈不大增!