使用vlookup出現錯誤(vlookup出錯的多種原因)
小夥伴們好啊,昨天在ExcelHome知識星球裡看到一位同學的提問,在使用VLOOKUP函式時,明明查詢區域裡有對應的數字,卻返回了錯誤值。
這個問題老祝覺得比較有代表性,下面咱們就結合這個問題,共同學習一下VLOOKUP出錯時可能存在的原因,小夥伴們遇到這樣的問題時,可以順藤摸瓜,對照這些原因來排除錯誤。
先開啟出現問題的檔案看看:
要實現的目的,是希望根據F列的商品名稱,在左側的資料來源中查詢出對應的出庫單價。
先看看G2單元格中的公式:
=VLOOKUP(F2,B2:D14,3,FALSE)
第一引數,也就是查詢值,是F2單元格中的商品名稱,這個沒問題。
第二引數,也就是查詢區域,是資料來源所在的B2:D14單元格區域,而且這個區域的首列也包含了要查詢的商品名稱。這個好像也沒問題。
第三引數,也就是要返回哪一列的內容,這裡寫成3,是希望從B2:D14這個區域中返回第三列的出庫單價資訊,這個也沒問題。
第四引數,用FALSE來指定使用精確匹配的查詢方式,這個也沒問題。
再看看G3單元格中返回錯誤值的公式:
=VLOOKUP(F3,B3:D15,3,FALSE)
咦,這裡的查詢區域怎麼變成了從第三行開始?
哈哈哈,問題就這樣輕鬆解決了,是因為第二引數沒有使用絕對引用,當公式向下複製時查詢區域就變了。
如果要查詢的內容在資料來源的前幾行,而查詢的資料範圍下拉後不再包含這幾行,那就肯定會出現#N/A錯誤。
只要將第二引數變成絕對引用,再向下複製公式,查詢區域始終固定就OK:
=VLOOKUP(F2,$B$2:$D$14,3,FALSE)
除了查詢區域沒有使用絕對引用之外,VLOOKUP出錯的常見原因還包擴以下幾種:
1、單元格里有空格
如下圖中,公式寫法沒問題,引用方式也沒問題,出錯的原因極有可能是被查詢的內容裡有空格,或者查詢區域的單元格里有空格了。
解決方法是按Ctrl H鍵調出【查詢和替換】對話方塊,在【查詢內容】文字框中輸入空格,點【全部替換】按鈕。
實際操作時,可以在英文輸入狀態下輸入空格,全部替換,然後再在中文輸入狀態下輸入空格,繼續替換一次。
2、不可見字元
如果是從系統匯出的資料來源,這個問題存在的概率比較大。
解決方法是單擊可能包含不可見字元的列標,在【資料】選項卡下點【分列】按鈕,然後在彈出的對話方塊中直接點【完成】即可。
這種方法能清除大部分型別的不可見字元。
3、查詢區域選擇錯誤
如下圖所示,要查詢的商品名稱,在資料來源是B列,如果將公式寫成從A列開始,那就不能怪VLOOKUP了:
=VLOOKUP(F2,$A$2:$D$14,3,FALSE)
4、漏掉了第四引數
第四引數用於指定使用哪種匹配方式,如果省略引數值,僅以逗號佔位,或者將引數值寫成0,作用和使用FALSE一樣的,都是精確匹配。
但是如果省略了引數值,逗號又給漏掉,那就別怪VLOOKUP不客氣了。
就像下圖,公式直接返回一個錯誤結果,你說這有多坑人:
5、數字格式不一致
這種問題,主要出現在數字類的查詢中。
看看下圖中的公式:
=VLOOKUP(D2,A:B,2,0)
D列的編碼是文字型的數字,而A列查詢區域的編碼是常規格式的數值,所以在查詢時就有問題了。
解決方法是把查詢區域的格式和被查詢的內容統一成同一種格式。
可以使用兩種方法處理,一是修改公式,將查詢值乘以1,使其變成數值:
=VLOOKUP(D2*1,A:B,2,0)
還有一種方法是使用分列,將A列的編碼變成文字格式。
對於已經輸入的內容,不能通過設定數字格式的方法實現從文字到數值格式的互相轉換,所以要使用分列功能,相當於重新輸入了一次。
最後還有一種可能出現問題的原因,就是查詢內容中包含“*”或是“~”,這兩個符號有特殊身份,在查詢條件中出現時,會被Excel當成萬用字元處理。
簡單有效的處理方法是將資料來源以及查詢內容中的“*”和“~”使用其他符號來替代,這個問題在實際工作中不多見,咱們知道有這麼回事就可以啦。
好了,關於VLOOKUP函式出現錯誤的主要原因咱們就分享這些,如果你有好的經驗,歡迎分享給小夥伴們,一起加油吧~~
圖文製作:祝洪忠