为啥用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的基本用法和使用场景的介绍,有兴趣的小伙伴,可以看一下,这些内容都是俺一个个去总结,去敲出来,希望可以帮助到大家,大家有什么问题,也可在评论区留言哟~