这年头作为职业表亲,要说自己不会VLOOKUP函数,那可是要打屁屁的。VLOOKUP函数应用范围广、使用简便,是出镜率非常高的函数。
可是这厮偶尔也会发个小脾气,查询时返回错误值,让表亲摸不着头脑。今天就和大家说说VLOOKUP函数使用过程中的错误值及解决方案。
一、一般出现“#N/A”的错误,说明在数据表首列查不找到第一参数的值。
![909b496c0c042d5523d249dfb66289c5.png](https://i-blog.csdnimg.cn/blog_migrate/66d893439e6370c39b5791eeed21d50c.jpeg)
这种错误值的处理一般有两种方案:
1)核实查找值是否拼写错误;
2)改成用通配符查询:
=VLOOKUP(A8&"*",A1:D5,2,0)
![eb5cc8d59bbe153728076e4985ab2220.png](https://i-blog.csdnimg.cn/blog_migrate/64f1218ae53bb6baf72238d9a5c6d211.jpeg)
二、如果VLOOKUP函数的第三参数超过了数据表的最大列数或者小于1,将会出现#REF!错误。
这种情况下,修改正确的返回值列数即可。
![87d1e2c08556d6e7b6ad4d00402bf61c.png](https://i-blog.csdnimg.cn/blog_migrate/8b0f7e2336d1f7d0431d5b81f929239b.jpeg)
三、如果查找的值不在数据表的第一列,也会出现错误值。
如下图,【工号】信息在数据表的第二列,要返回的是第一列的值,因此公式返回错误。
![2c12dc7256cb6f8707d68cf2bf94ffd6.png](https://i-blog.csdnimg.cn/blog_migrate/428154ba9760b680a310de81eae572ed.jpeg)
这种情况下,建议将【工号】列挪到数据表第一列,或使用INDEX+MATCH函数、LOOKUP函数等解决。
比如上图例子中,工号在数据表的第二列,需要查询位于左侧的姓名,就可以使用
=LOOKUP(1,0/(B2:B8=A8),A2:A8)
四、如果查找的值为数字,并且返回错误值时,多数情况是查找值和原始数据表值的格式不一样。
如下图,B8单元格输入的是数字“111”,而A列存储的是文本型数字,两者不同,因此返回错误。
![9323cd02637174bce67628edd498a2b8.png](https://i-blog.csdnimg.cn/blog_migrate/5b6b5f17df010f489671c9ba8f20da9f.jpeg)
上面所述的这种错误,也有两种解决方法:
1)利用【分列】功能将A列的文本型数字转化为数字;
2)把VLOOKUP的第一参数加上&""转换为文本。
![474d294cdeaf521af8ead0b56cf26921.png](https://i-blog.csdnimg.cn/blog_migrate/4aeb2b9824fcb2be11003f4fc9686534.jpeg)
好啦,今天的门诊时间就到此为止吧。
遇到VLOOKUP函数有错误值的时候,别忘了用上面这几种方法检查一下哦。
作者:shaowu459
编辑整理:祝洪忠