【1条未读消息】:几个近似查询的套路,收吧!

发布于 2021-09-08 09:43

各位表亲好啊,话说某单位组织员工考核,最后需要根据考核分数进行评定。

考核分数在0~59的,是不合格。

60~79的,是合格。

80~89的,是优秀。

90及以上的,是良好。

对于这种情况,咱们要首先建立一个分数和等级的对照表:

发现这个对照表的规律了吗?

分数是从小到大排列的,首列中的分数就是等级标准的起始值,也就是达到这个分数或是超过这个分数了,就是对应的等级。

在这个例子中,就要用到近似匹配了。

接下来,咱们看看用那些方法能实现。

INDEX+MATCH

先来说INDEX+MATCH法,这是一对查找应用的天生绝配,MATCH函数负责找出位置,INDEX函数负责根据这个位置找到对应的值,话不多说,看公式。

=INDEX(F$3:F$6,MATCH(B2,E$3:E$6))

MATCH函数省略第三参数,表示在E3:E6这个区域中,查找小于或等于B2单元格(75)的最大值。

在E3:E6这个区域中,没有75这个值,她就找到所有几个弟弟当中,最大的一个弟弟,也就是60。

MATCH函数说了,找不到你哥,就拿你顶包吧,然后就返回60在E3:E6这个区域中的位置2,INDEX函数根据这个位置返回F3:F6单元格中对应的值。

这里MATCH就是一个班长:报告老师,第二排有人睡觉了!

INDEX函数马上就说了,第二排睡觉的那个,滚出去!

这里有一个前提啊:查询区域首列的值必须以升序排序,否则就乱了方寸了。

VLOOKUP

VLOOKUP也是重量级的查找引用函数,出镜率那是相当的高,有查找的地方,就有VLOOKUP。

=VLOOKUP(B2,E$3:F$6,2)

VLOOKUP函数的几个参数大家都记得吧,第一个是要找谁,第二个参数是在哪儿找,第三个参数是返回第几列的值,第四个参数是精确的找还是近似的找。在这里,VLOOKUP函数第四参数省略掉了,默认执行的是近似的匹配方式,VLOOKUP函数说了,既然没有小尾巴跟踪,我就差不多得了。查找时,返回精确匹配值或近似匹配值。如果找不到精确匹配值,则返回小于查找值的最大值,也是在找几个弟弟中最大的那个弟弟。

LOOKUP

LOOKUP函数可是一个魅力十足的奇女子,那是简单而不简约,手起刀落之处,必是哀鸿遍野。

=LOOKUP(B2,E$3:F$6)

LOOKUP函数第一参数是查询值,第二参数是查询区域,由于她实在是变化多端,老祝一时半会儿也说不清楚了。

大家只要记得,如果 LOOKUP 函数找不到查询值,则会与查询区域中小于或等于查询值的最大值进行匹配,仍然是找不到本主时,就拿几个弟弟中的大弟弟顶包。 

这里第二参数是一个两列的区域,LOOKUP函数很聪明的从这个区域中的首列,找到大弟弟的位置,并且返回这个区域最后一列对应位置的值。

条条大路通罗马,近似匹配的查询,用几个函数都能实现。

但是注意哦,在近似匹配时,必须是要将查询区域的首列从小到大排序的,否则的话,就找不到大弟弟的位置了呢。

图文制作:祝洪忠

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材