使用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倍(具体提升速度根据数据量不同而不同用vlookup匹配不出来,数据量越大,提升的越多)

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

问题

但是用vlookup匹配不出来,这个公式有一个问题:

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

“华筝”这个任务没有在右表中出现,如果用精确匹配的话,会返回一个#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·

—如果喜欢,快分享给你的朋友们吧—

我们一起愉快的玩耍吧

发表回复

后才能评论

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源