公众号回复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就是这样累死的…… 精确查找使用的就是历遍法原理,这种方法的优势是没有什么限制,缺陷也很明显,在某些时候运算速度会比较慢。 为了解决运算速度的问题,就有了二分法原理和所谓的大致匹配。 这个问题咱们明天接着聊,请保持关注! |
|