Vlookup函数找不到匹配值?你一定要知道的3个原因!
Vlookup函数是我们在日常工作中经常会用到一个数据查询函数,可是在实际使用这个函数的时候,我们经常会遇到明明看到两个表中都有相同的数据,可用Vlookup函数就是找不到的问题。
眼见眼见不一定为实,耳听不一定为真。虽然看上去两张表里面都有相同的数据,可这些数据并非是完全相同的,这就是导致Vlookup匹配不到的原因,可是眼睛看不出来差异,那还有什么工具帮助我们分辨出两者的差异呢?今天我们就用一个照妖镜来照出导致Vlookup函数找不到匹配值的3个原因。
1、数据类型不匹配
比如下图所示的这个表格,根据订单编号到右侧的B表中查询,所有订单编号都是有的,但查询的结果却是#N/A。
导致问题发生的原因是A列中的订单编号是文本类型,我们可以注意到每个数字的左上角都有一个绿色小三角,有绿色小三角的数据类型都是文本类型。而另一边D列中的数据类型则是数字类型。
解决这个问题的方法很简单,统一成相同的数据类型就可以了。
如果想都改成数字,则只需要在A列的数字的左上角,点击“ 转换为数字 ”。
如果想统一成文本,可以利用“ 数据-分列 ”功能最后一步的数据类型强制转换功能转成文本。
只要两边的数据类型匹配了,一定可以找到对应的订单编号。
2、包含空格
导致Vlookup函数找不到匹配值的第二个原因是数据前后包含有空格,比如下图中我们看到有3个名字找不到匹配值。
如果删除空格对数据没有影响,可以按【CTRL+H】打开“替换”对话框,在“查找内容”中输入一个空格,替换为中什么都不要输入,点击“全部替换”就删除全部的空格。
如果数据中间有空格,不能直接直接用替换功能删除,则可以利用 TRIM 这个删除首尾空格的函数来清除。
3、包含不可见的非打印字符
如果查询值既非数字,用查找替换功能也没有找到任何一个空格,那就是第3种情况了: 包含不可见的非打印字符。
有一些从公司系统或者平台中导出来的数据会存在一些特殊的非打印字符,这些字符我们在单元格中不但看不到,而且即使双击单元格进入编辑状态全选字符也感觉不到它的存在。
比如下图所示的这个表格,我用查找功能在另一张表中确实都找到这些名字,可Vlookup函数就是找不到。也尝试搜索空格,返回的结果是没有找到任何一个空格。我把光标放在找不到的那些名字的公式编辑栏上前后选择,没有选择到任何其他字符。
在Excel中看不到、也选择不到,太奇怪了。那只能出动“照妖镜”来照出究竟是何方神圣。所谓的“照妖镜”其实是记事本,当我们把表格复制到记事本,所有看不见的字符都会原型毕露。
在键盘上按 【Win+R】 键调出“运行”功能,在命令栏中输入: notepad ,就可以打开记事本了。
我们来看看刚刚那份名单粘贴到记事本中的结果,有没有看到所有找不到的名字前后都有引号和长空格,原来是这些不可见字符惹的祸啊!
找到了问题的原因,解决的方法有两个:
1、直接在记事本中用替换功能删除所有的非打印字符。
2、如果数据经常变动,每次都要复制记事本来删除,觉得麻烦,可以增加一个删除非打印字符的Clean函数。你看下图的结果,是不是所有的名字都匹配到了。
这就是Vlookup函数明明就有却偏偏找不到匹配值的3个原因,总结一下:
- 数据类型匹配:统一成相同的类型
- 包含空格:用替换功能删除空格或用Trim函数清除
- 包含不可见的非打印字符:复制粘贴到记事本中删除,或者用Clean函数清除