分享

【Excel函数教程】vlookup函数中的精确匹配和大致匹配究竟是什么意思?(上篇)

 Excel学习园地 2021-06-03


公众号回复2016   下载office2016

昨天给大家推荐了一本PBI的书,书的内容非常好,小编一时太过兴奋,忘了添加半价的购买链接,今天赠书活动延续一天。

限时半价购买链接↓↓↓

大多数人在第一次接触到精确匹配和大致匹配(模糊匹配)通常都是学习使用vlookup函数的时候,在老师讲解第四个参数的时候会提出这个概念:

但是并没有详细的解释什么是精确匹配,什么是大致匹配。

可能会提到大致匹配是二分法之类的概念,然后就没有下文了,于是我们就一直懵懵懂懂的用着精确匹配,偶尔用一下大致匹配也是生搬硬套。

老菜鸟也是用了若干年之后才明白这其中的奥秘,今天就和大家聊聊什么是精确匹配,什么又是大致匹配。

下图就是一个标准的vlookup用法,使用的是精确匹配,很好理解,工号完全一致的前提下,得到对应的姓名。

再来复习一下vlookup的用法:

=vlookup(查找值,数据区域,要找的内容在第几列,精确匹配)

关于函数详细介绍参考之前的教程:

【Excel函数教程】史上最弱的一篇vlookup教程,再学不会你就可以放弃了!

查找值(工号)在数据区域(A列)完全一致(精确匹配)的时候,会得到需要的结果(姓名)。

如果工号有一点不同,就会得到错误值:

不小心将NE293输入为NE292,因为数据区域没有这个工号,姓名就会显示为错误值。

可能有朋友就想了,NE293和NE292看起来差不多,那么用大致匹配是不是能找到呢?

我们可以来试试:

将第四参数改为1,变成大致匹配。

公式变成大致匹配以后,只有第一个工号的姓名是正确的,原本没有对应工号的(NED292)也有姓名了,但是并不是NED293对应的姓名,不知道从哪里找了个名字填进来了,糟糕的是原本有对应工号的姓名全部得到了错误的姓名。

至此,我们彻底不理解大致匹配了……

要想了解大致匹配究竟是什么意思,还要从数据匹配的两种计算原理说起,那就是历遍法与二分法。

历遍法原理与精确匹配

历遍法大致上是这个意思:

第一个要找的工号NED034,要找的范围是A列,vlookup就从A1开始找,只找了两个单元格就发现目标,于是返回需要的姓名。

找到以后开始找第二个工号NED293,过程如图:

还是从A1开始来一遍,找了6个单元格发现目标,返回需要的姓名。

继续找第三个工号NED266,这次就找了12个单元格才发现目标,然后继续找第四个工号……………………

是不是觉得vlookup挺辛苦的!

这种查找方法就是历遍法,说通俗点就是挨个过一遍,找到目标就停止,找不到就一直找。

这也是为什么在用vlookup的时候,不建议选择整列的原因,如果有一个数据是没有的,例如刚才的NED292,如果选择整列,也就是1048576这么多行,就要挨个找一遍才能确定没有,得到一个错误值,如果数据里有两个是不存在的,就得再来一次1048576这么多行,vlookup就是这样累死的……

精确查找使用的就是历遍法原理,这种方法的优势是没有什么限制,缺陷也很明显,在某些时候运算速度会比较慢。

为了解决运算速度的问题,就有了二分法原理和所谓的大致匹配。

这个问题咱们明天接着聊,请保持关注!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多