為啥用vlookup就資料錯誤(使用vlookup出現錯誤)
VLOOKUP在查詢的時候,明明資料中有,為啥查詢不到,而是報#N/A錯誤呢?我總結了常見的出錯的三種情況以及解決方法。
VLOOKUP報#N/A錯的根本原因
查詢值(第一個引數)在查詢區域(第三個引數)中的第一列不存在。
原因一:資料型別不同
主要是指數字和文字,型別不同,也會認為是不同的值,所以需要將其型別進行統一。
存在2種情況:
1)查詢值為文字,查詢區域第一列中是數字
公式1:=VLOOKUP(--H2,A2:E7,5,0)
公式2:=VLOOKUP(H2*1,A2:E7,5,0)
公式3:=VLOOKUP(VALUE(H2),A2:E7,5,0)
文字轉數字的方法:--,*1,value(值)
2)查詢值為數字,查詢區域第一列中是文字
公式:=VLOOKUP(TEXT(H3,"0"),A2:E7,5,0)
數字轉文字的方法:text(值,格式)
這裡面涉及到了資料型別的轉換的知識,以及自定義格式的內容,在這裡就不展開說了,後期會出對應的文章,大家按照上方的公式套用就可以使用。
原因二:資料中有空格或者不可列印字元
資料中有空格或者不可列印字元,也會導致資料不一致,需要將其清除
1)資料有空格:將空格替換為空
SUBSTITUTE(要處理的文字,需要被替換的舊字元,替換舊字元的新字元,替換第幾個):替換指定字元;如果第4個引數省略,則替換所有的舊字元
公式:=VLOOKUP(SUBSTITUTE(D2," ",""),A2:B11,2,0)
2)資料有不可列印字元:將其刪除
CLEAN(單元格):刪除不可列印的字元
公式:=VLOOKUP(CLEAN(D3),A2:B11,2,0)
如果是資料區域第一列有空格或者不可列印字元,我們對整列進行替換清除即可,如果空格和不可列印字元都有,在SUBSTITUTE外套一個CLEAN即可0--CLEAN(SUBSTITUTE())
原因三:資料有萬用字元
查詢值有萬用字元,不會將其當做正常的字元去使用,他有自身的含義,想要查詢到,需要將其變成普通的字元去使用。
公式:=VLOOKUP(SUBSTITUTE(D2,"~","~~"),A2:B11,2,0)
公式解釋:
1)萬用字元:在Excel中常見的萬用字元有3種
型別 | 含義 | 示例 |
星號(*) | 代表多個字元 | 趙*-以趙開頭的字元,後面字元個數不限 錢*三-以錢開頭三結尾的字元,中間字元 |
問號(?) | 代表單個字元 | 趙?-以趙開頭的2個字元 錢??三-以錢開頭三結尾的4個字元,中間2個字元 |
波形符(~) | 取消萬用字元的通配性 | 使用在萬用字元前面,將萬用字元當做普通字元使用 ~*;~?;~~ |
2)SUBSTITUTE(上方看語法喲)
整體就是將萬用字元(~),替換(SUBSTITUTE)成(~~),將其當做普通字元去進行查詢即可。
注意事項:
當資料中有萬用字元時,我們需要去判斷是否將萬用字元當做普通字元去使用呢?因為不同的要求,公式和結果可能就不相同。
1)當萬用字元去使用:星號(*)代表多個字元,XX-YYY1*4就是隻要是XX-YYY1開頭和4結尾的字串,找的第一個滿足條件的是XX-YYY1*104,他對應的目標值就是365。
公式:=VLOOKUP(E2,A2:C11,3,0)
2)當普通字元去使用:找到和其一模一樣的查詢值;將其替換成~*即可當做普通字元去使用。
公式:=VLOOKUP(SUBSTITUTE(E3,"*","~*"),A2:C11,3,0)
擴充套件:VLOOKUP與萬用字元搭配使用實現模糊匹配
在左側資料中找到郵政所對應的金額放在黃色區域中,但是查詢值是簡稱,而查詢範圍裡是全稱,但是隻要帶"郵政"2個字即可,不管前後有多少字元,所以前後可以拼接上(&)萬用字元星號(*)。
公式:=VLOOKUP("*"&D2&"*",A2:B11,2,0)
VLOOKUP的內容終於告了一個段落,目前寫了5篇關於VLOOKUP的內容了,這4篇文章(日常工作中VLOOKUP的多種使用場景大揭祕(一) 日常工作中VLOOKUP的多種使用場景大揭祕(二) 日常工作中VLOOKUP的多種使用場景大揭祕(三) 日常工作中VLOOKUP的多種使用場景大揭祕(四)) 是VLOKUP的基本用法和使用場景的介紹,有興趣的小夥伴,可以看一下,這些內容都是俺一個個去總結,去敲出來,希望可以幫助到大家,大家有什麼問題,也可在評論區留言喲~