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())
原因三:数据有通配符
查找值有通配符,不会将其当做正常的字符去使用,他有自身的含义,想要查找到,需要将其变成普通的字符去使用。

公式:
公式解释:
1)通配符:

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篇文章(