✅ 操作成功!

excel什么意思

发布时间:2023-06-08 作者:admin 来源:文学

excel什么意思

excel什么意思

-企业策划

2023年2月23日发(作者:出生的反义词)

大多数人在第一次接触到精确匹配和大致匹配(模糊匹配)的时候,通

常都是学习使用vlookup函数的时候,在老师讲解第四个参数的时候会

提出这个概念:

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

大致匹配是二分法之类的概念。然后就没有下文了,于是我们就一直懵

懵懂懂的用着精确匹配,偶尔用一下大致匹配也是生搬硬套。老菜鸟也

是用了若干年之后才明白这其中的奥秘,今天就和大家聊聊什么是精确

匹配,什么又是大致匹配。

精确匹配与大致匹配

上图就是一个标准的vlookup用法,使用的是精确匹配,很好理解,工

号完全一致的前提下,得到对应的姓名。

再来复习一下vlookup的用法:

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

查找值(工号)在数据区域(A列)完全一样的时候,会得到需要的结

果(姓名)。

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

不小心将NE293输入为NE292,因为数据区域没有这个工号,姓名就

会显示为错误值。

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

是不是能找到呢?

我们可以来试试:

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

(注意,有些版本的Excel在vlookup函数的说明中有误,实际上0或

者false对应精确匹配,1或者是true对应大致匹配。)

公式变成大致匹配以后,只有第一个工号的姓名是正确的,原本没有对

应工号的(NED182)也有姓名了,但是并不是NED183对应的姓名,

不知道从哪里找了个名字填进来了,糟糕的是原本有对应工号的姓名全

部得到了错误的姓名。

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

要想了解大致匹配究竟是什么意思,还要从数据匹配的两种计算原理说

起,那就是历遍法与二分法。

历遍法原理与精确匹配

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

第一个要找的工号NED034,要找的范围是A列,vlookup就从A1开

始找,只找了两个单元格就发现目标,于是返回需要的姓名。

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

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

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

后继续找第四个工号……………………

是不是觉得vlookup挺辛苦的!

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

找不到就一直找。

这也是为什么在用vlookup的时候,不建议选择整列的原因,如果有一

个数据是没有的,例如刚才的NED292,如果选择整列,也就是1048576

这么多行,就要挨个找一遍才能确定没有,得到一个错误值,如果数据

里有两个是不存在的,就得再来一次1048576这么多行,vlookup就是

这样累死的……

精确查找使用的就是历遍法原理,这种方法的优势是没有什么限制,缺

陷也很明显,在某些时候运算速度会比较慢。

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

二分法原理与大致匹配

二分法可不像历遍法这么好理解,网络上也有各种版本的介绍,不过对

于新手来说都显得过于专业,没办法,这个概念真的很抽象。不过老菜

鸟通过以下简单的测试,也可以让大家可以对二分法原理有个比较直观

的了解,有兴趣的朋友可以自己跟着操作试试。

注意公式中的第四参数是1,也就是大致匹配,大致匹配使用的二分法

原理。

什么是二分法?不同于历遍法,二分法不是从开头找起,而是从中间位

置的数据找起。

比如这里有三个数,2、4、6,要找的内容是2,如果使用精确查找也就

是历遍法,第一次就能找到。但是用二分法的时候,是先从中间的位置

也就是4找起,如果不是要找的内容,就要比较,当要找的数据小于中

间位置的数据时,向上找,反之则向下找。此处2小于4,所以向上找,

就发现了目标,因此得到了正确结果。

这样解释了以后,是不是感觉二分法也不是那么难的?

是不是难咱们接下来再看:

这次要找的数据变成5,结果是4,怎么解释?

如果是历遍法查找的话,找三次,找不到,结果返回错误值。

但是二分法不这样,依然和中间位置的4比较,5大于4,向下找,下

边的是6,5小于6,只能得到6上面的数据就是4。

可能有朋友会问,为什么和6比较以后不继续比了,这就是二分法的特

性,因为一共三个数字,第一次比较就排除一半,只剩一个数字了(就

是6),第二次比较之后没得比了,只能得到4。

如果还有些迷糊的话,再看一个例子:

这次要找的数据变成7,还是和前面一样,先与4比,7大于4,向下继

续和6比,此时有三种结果,如果相等,结果为6;如果要找的内容小

于6,得到6上面的数据(刚才找5就是这个情况);如果要找的内容

大于6,结果还是6,因为下面没有数据了,只能得到6,本例就是这个

情况。

经过多次测试,我们还可以发现一个现象,要找的值只要比6大,始终

得到的都是6。(这个结论很重要,以后学习lookup经典套路的时候就

会用到了)

那么是不是说二分法就一定可以得到一个结果,而不会得到错误值呢?

肯定不是这样的,比如这种情况:

要找1,为什么得到错误值?

我们已经明白了二分法的基本模式,可以试试来分析:第一次和4比较,

1小于4,向上找,1还小于2,继续向上,但是向上就没有单元格了,

注意不是没有数据而是没有单元格,刚才向下的时候,6下面也是没有

数据,但是还是有单元格的,也即是说,有单元格代表在一个合理的位

置,没有单元格说明连位置都不存在,肯定是错误值了。

再深一步想,只要找的值小于2,肯定都是错误值,咱们不妨来试试:

结果正如我们所料。

此时其实一个更加重要的结论呼之欲出了,那就是说,只要找的值在2

和4之间,肯定得到2,在4和6之间,肯定得到4,大于6的肯定得

到6,这就是vlookup区间查找的原理啊,朋友们!

什么,你还不知道vlookup的区间查找是什么意思,来看这样一个实例:

根据销售额找到对应的提成比例,这里就用的是vlookup大致匹配,仔

细看一下,只有三个参数,省略了第四个参数(连同逗号一起省略)代

表大致匹配,如果保留逗号只是省略参数代表精确匹配。

好了,大致匹配和二分法你觉得是不是明白了一些。

其实这才是二分法的一部分,更重要的内容是,【二分法默认数据为升

序排列】!

尾声!

什么叫默认数据为升序排列,还是通过例子来理解吧。

刚才我们讲解二分法使用的数据源就是升序排列,如果顺序是乱的,那

么一切都变了!

找6,没有得到6却得到了4,何解?

第一次6和2比较,这一点没有疑问吧,6大于2,向下找,继续和4

比较,6还大于4,只能得到4了,下面没有数据了。

找1得到错误值,还是一样的道理,先和2比较,向上,继续和6比较,

没有位置了(不是没有数据哦),只能得到错误值。

可见,二分法不会起考虑数据源实际上的排列顺序,始终遵循找到中间

位置,比较大小,大了向下找,小了向上找的原则去寻找目标。

其实到这里,二分法基本上说清楚了,再来最后一个例子:

在这样的7个数里找5,结果是几?

二分法说:先和8比,5小于8,向上找,上边有三个数据,和中间的2

比较,5大于2,再向下找,只有一个数字4因此结果应该是4。

从查找次数的角度,二分法只找两次就完成任务,因为二分法不是以内

容为查找对象,而是通过不断地二分数据源,每次排除一半数据,到最

后一次二分时完成任务,本例中一共7个数,2的3次方是8,也就是

说,当数据量达到8个的时候,才会找三次,同理,当数据量达到16

个的时候,才会找四次,以此类推。

这里说的次数是理论上的最大次数,如果很凑巧,一次就找到了,那么

当然结束工作,例如:

要找的数据正好就在中间,一次就完成。

二分法的原理讲到这里就接近尾声了,我们明白了为什么二分法查找速度快,也

明白了为什么有时候明明有数据却得不到正确的结果。

对于原理这样理论性很强的知识点,通过自己动手模拟的效果应该算是不错的,

那么留给大家一个作业吧,可能有些朋友注意到了,我们举的例子中,数据源都

是单数,要么3个,要么7个,这样的数据源中间位置是很好找的,如果数据源

是4个或者是6个,中间位置该如何确定呢?

给你个方法自己去测试吧,比如有6个数据,那么中间位置只能有两种可能,3

或者4,具体是哪个,自己去试试就明白了……

👁️ 阅读量:0