打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VLOOKUP技巧-使用近似匹配如何找到真的匹配结果

使用VLOOKUP函数的近似匹配时会遇到返回的结果不正确(不是错误值!),你可以用下面的技巧解决这个问题!




前言

VLOOKUP函数的近似匹配一般用于数值类型的分段查找,我们以前介绍过。不过在一些特殊情况下,我们可以在文本类型的查找中使用近似匹配。

比如,

我们需要在C5:F9单元格中输入VLOOKUP公式得到右表中相应的结果

一般情况下,C5的公式如下:

=VLOOKUP($B5,$I$5:$O$10,MATCH(C$4,$I$4:$O$4,0),0)

其中用到了match函数,是为了动态返回不同的列。具体请看这里

但是,如果这个表比较大,比如,有几千行甚至更多,这时,有可能你的Excel表格就会运行缓慢,每次输入一个数据,都要计算半天。

特别强调一下,此时,尽量不要用手动计算模式。它带来的问题远超过它的好处!切记

此时,我们可以将公式改成:

=VLOOKUP($B5,$I$5:$O$10,MATCH(C$4,$I$4:$O$4,0),1)

注意,前后两个公式的区别就是最后一个参数从0变成了1,VLOOKUP从精确匹配改为近似匹配。

这么一改,你的表格的计算速度会提升5-10倍(具体提升速度根据数据量不同而不同,数据量越大,提升的越多)

这么改有一个要求,就是右边中必须按照第一列升序排序。不过相对于速度的提升,这个要求应该不算什么了。

问题

但是,这个公式有一个问题:

使用了近似匹配后,我们发现最后一行返回的结果不正确

“华筝”这个任务没有在右表中出现,如果用精确匹配的话,会返回一个#N/A的错误值,我们很容易就会知道出了问题,去补充右表就可以了。但是现在使用了近似匹配,并没有返回错误值,但是得到了错误的结果。我们就很难发现是否资料不完整。

这是由VLOOKUP近似匹配的原理导致的。只要用近似匹配,就会出现这个问题。

解决方案——二次查找

解决这个问题,只需要将公式改为:

=IF(VLOOKUP($B9,$I$5:$O$10,1,1)=$B9,VLOOKUP($B9,$I$5:$O$10,MATCH(E$4,$I$4:$O$4,0),1),"")

这里我们使用了IF公式,在条件部分,我们使用

VLOOKUP($B9,$I$5:$O$10,1,1)=$B9

VLOOKUP函数返回的是第一列,即姓名,我们判断的是这个返回的姓名是否等于我们的查找值,如果True,表示真的找到了匹配行,于是就返回原来的查找公式:

VLOOKUP($B9,$I$5:$O$10,MATCH(E$4,$I$4:$O$4,0),1)

如果False,表示找到了假的匹配行,返回一个空白单元格

下面是返回结果:

不要担心两次VLOOKUP会导致速度变慢。这个影响微乎其微!

·end·

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel公式技巧62:查找第一个和最后一个匹配的数据
Excel VLOOKUP函数小技巧
爱看
再见Vlookup,核对两列数据最完美的Excel技巧来了!
EXCEL表格中如何使用VLOOKUP函数进行反向查找和多条件查找详细
vlookup 函数的正向查找和反向查找用法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服