用VLOOKUP老是出现#N/A错误怎么办?这个技巧你一定要 ...

论坛 期权论坛 股票     
期权匿名问答   2023-2-2 15:29   5604   0
长干货预警

3000字左右,预计5分钟看完

认真看完会很有收获

先赞后看,收藏慢慢看
作为一名教Excel的老师
我太懂大家用VLOOKUP的时候经常出问题的原因了
认真看完并理解,以后你用VLOOKUP就不会再出问题了
很多人经常出现 #N/A等各种错误
就是因为并没有真正搞懂VLOOKUP的语法要求
即使你是Excel高手了,对VLOOKUP很熟了,还是强烈建议你再仔细看看我这篇回答。        
因为我会讲到一些新的写法和误区,和网上99%的答案都不一样。
如果你是小白,那么恭喜你,一开始就掌握更好的公式写法,
这样可以避免你以后在用VLOOKUP的时候经常出现#N/A等各种错误
先说VLOOKUP的语法↓



总共有四个参数,具体什么意思我们用一个例子来理解一下
比如现在,我要根据产品名查单价怎么办?
先看下面的公式,我再来解释一下每个参数


第1参数
告诉Excel当前要查找什么?注意第一个参数很多人就经常写错,我经常看到有人选整列或者选多个单元格的,这都不对啊
微软官方语法文档里明确说了,VLOOKUP的第1参数只能写一个值,所以你要么写一个常量,要么去引用一个单元格,不要去引用多个单元格。
第2参数
告诉Excel你要在哪找?要圈选一个区域(查找范围)
你看下面圈选的区域,有两列很重要


圈选范围的第一列叫【查找列】,圈选区域必须要包含查找列和返回列(结果列),而且还有一个要求,你右边圈几列都没关系,但是一定要保证你左边圈的第一列一定就是查找列
因为VLOOKUP不会在整张表里查找,它只会在你圈选范围里的第一列查找,所以左边有不相干的列不要圈选进来
第一列一定要是查找列,这也告诉我们,查找列一定要在返回列的左边,平常做数据的时候,就要把查找列放在返回列的左边,要不然VLOOKUP就不好使了
这里根据名称找单价,名称在第一列,名称列在单价列的左边


第3参数
写一个整数,告诉Excel你要返回第几列,就是你圈选范围里的第几列,这里单价在圈选范围里的第3列,所以我们写3
第4参数
最后一个参数是问题最多的,官方语法明确说了,最后一个参数要写false或者ture,写false表示要执行精确查找,写true表示要执行模糊查找。
很多用户要么省略不写,要么写1或者写0,这样经常会出现问题
有很多用户经常拿文件过来问我,他写了一个VLOOKUP,但是查找不出来,而且他已经看到那个值就在表里了,VLOOKUP就是找不到,好几次我一看第4参数都没写,第4参数是可以省略,但是你不写第4参数就表示模糊查找了,所以当然找不到
还有很多用户,经常爱写1写0的,在其他地方也爱写1写0,包括网上好多老师也是这么教的
不要这么去做,一定要学正规的东西,少学那些所谓的技巧,因为在所有官方正规的文档里,都没有说这可以写1写0,都说的是你要写true或false,就算是你写1写0没有报错,最好还是不要去用这些东西
等你以后项目经验多了之后就会明白,如果你平常习惯于用这些所谓的非正规小技巧,有可能以后会给你带来很多问题。
双击屏幕,加油继续往下看
下面我重点讲很多答主写公式的缺陷
你看下面两个表查询结果有什么区别?


好像没区别是吧?
我们先看左边这个表写的公式,就是很多人经常在用的区域引用,这里具体表现就是E9:G14


为了方便您理解,我每一个参数都换行了,从上往下看
这样写法的缺陷是什么呢?E9:G14相当于把范围写死了,还有很多人直接就写E:G(E冒号G)


这样都非常不好,有经验人的就会知道,这样你每次写都要想着加$,按F4,要是忘了就会经常报错#N/A,有遇到这样情况的朋友可以在评论区抠个1
而且你写的E9:G14这个区域不能动态更新,一旦你需要新增加一些记录,就得重新圈选查找范围
经常用Excel的小伙伴就会知道
动态可更新这个功能非常重要!!!
工作中我们经常每周或每个月需要加一些新的记录【行】进来,如果你是用这种固定区域写法,那你就惨了
因为有新的记录进来,你需要反复不断地选择查找范围,甚至反复写函数,删删改改,头都要爆了!
有什么办法,可以既不用我加$,又不用写每次重新圈选范围吗?
当然有!
就是我给你推荐的下面这种公式写法


其他参数你都知道是什么意思,我来解释一下第2个参数,它代表你选中了产品表这张表里的名称列到单价列


这样写的好处有3个
1、不需要考虑加$的问题,这样就减少了出现#N/A错误的概率
2、可动态更新,新增记录不需要重新圈选范围
3、自动填充,不需要你再双击填充或拖动填充
我们来看一个例子理解一下
现在要求你根据职务,去【职务工资】这张表里找到每个职务对应的职务工资


【职务工资】表


我们用传统的公式写一下,类似B2:C17这种
动图演示


公式太小看不清,你可以看这个




你会发现,如果忘了加$,就会出现很多#N/A错误
但是用我推荐的这种公式写法,需要将普通区域转成表,也就是网上常说的超级表,按Ctrl+T键确定后,就可以使用这种公式写法↓↓


就不需要考虑加$,而且可以动态更新,并且不需要再双击填充


写完公式直接回车,就可以自动填充


这里解释一下,[@职务]是什么意思,就是代表你选中职务这一列当前这一行的这个单元格,也就是C2了
你看动图,发现我点击C2的时候,Excel就帮我自动写好[@职务]了,当然你也可以手写


总结一下这样写公式的好处


1、不需要考虑加$的问题,这样就减少了出现#N/A错误的概率
2、可动态更新,新增记录不需要重新圈选范围
3、写完公式,回车自动填充,不需要你再双击填充或拖动填充
OK,如果VLOOKUP新的公式写法学会了之后
我们再来说说VLOOKUP使用经常遇到的错误
确保公式语法没有写错的前提下,检查自己的4个参数有没有写错,用我的推荐的公式写法可以减少出错的概率
如果公式确实没问题,但还是出现#N/A说明确实真的找不到
另外就是你明明看到那个值就在表里了,VLOOKUP还是帮你找不出来,那就是以下的原因


我们一个个来说
1、含有多余的空格和非打印字符

这些东西肉眼看不出来
比如现在我们要根据【财务员】这个职务名称,找到对应的职务工资,公式确定没有写错,而且你明明已经看到表里面有【财务员】这个值了


但还是出现#N/A错误,这时候你就要判断它可能是存在一些看不见空格和非打印字符了


你得先把这些东西清洗掉,VLOOKUP才能帮你正常找出来
我们怎么把空格和非打印字符清洗掉?
那就需要用到Clean和Trim这两个函数了
有经验的朋友就会知道,如果你经常需要从公司系统导出Excel文件或者是从网页上直接复制过来的表格,里面会经常带有表面上看不出来的空格回车这些东西
所以我们经常需要用到Clean和Trim这两个函数来帮助我们将数据清洗干净
Clean是帮我们除去非打印字符,比如回车这些
Trim是去空格的
这两个函数使用都很简单,只有一个参数
Trim(1个文本)
Clean(1个文本)
OK,我们来演示刚刚出现错误的那个案例,先在旁边写Trim函数,把【职务】那一列清洗干净,再复制粘贴回去,你会发现左侧写的VLOOKUP瞬间就恢复正常了,粘贴要选择只保留值。
动图演示,注意粘贴保留值后,观察左侧的#N/A变化,瞬间变成3000,说明正常了


2、数字和文本格式不匹配

比如现在我们要根据阿拉伯数字,找到对应的中文名月份,公式没写错,表里面也明明有对应的值,还是NA


如果你仔细观察的话,会发现右边那张表数字已经是文本格式了,和左边的不匹配,所以找不到。


你只需要把文本格式转换为数字格式,就会发现所有#N/A错误瞬间变回正常了
动图演示


如果你有什么问题,可以在评论区问我
3、中英文状态下的符号不匹配



这个比较简单,就不多说了,你只需要查找替换把符号换一下就OK


OK,关于VLOOKUP的用法和常见错误及解决方法都已经完整详细教给你了
如果觉得有帮助的话,感谢你的点赞支持

双击屏幕收藏起来,以免下次找不到了
我会更新其他Excel回答,有想要我写的内容可以在评论区回复
强烈推荐你看的一个回答↓↓
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:400157
帖子:80032
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP