【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 我们将第一时间删除。
相关素材