欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  Office

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

程序员文章站 2022-06-26 10:58:40
各位表亲好啊,话说某单位组织员工考核,最后需要根据考核分数进行评定。 考核分数在0~59的,是不合格。 60~79的,是合格。 80~89的,是优秀。...

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

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

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

60~79的,是合格。

80~89的,是优秀。

90及以上的,是良好。

以上条件,仅供参考,如有雷同,请勿吐槽

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

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

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

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

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

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

条条大路通罗马Excel中的近似匹配查询几个函数都能实现INDEX+MATCH

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

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

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

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

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

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

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

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

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

条条大路通罗马Excel中的近似匹配查询几个函数都能实现VLOOKUP

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

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

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

VLOOKUP函数的几个参数大家都记得吧,第一个是要找谁,第二个参数是在哪儿找,第三个参数是返回第几列的值,第四个参数是精确的找还是近似的找。

在这里,VLOOKUP函数第四参数省略掉了,默认执行的是近似的匹配方式,VLOOKUP函数说了,既然没有小尾巴跟踪,我就差不多得了。

查找时,返回精确匹配值或近似匹配值。 如果找不到精确匹配值,则返回小于查找值的最大值,也是在找几个弟弟中最大的那个弟弟。

条条大路通罗马Excel中的近似匹配查询几个函数都能实现LOOKUP

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

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

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

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

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

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

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

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