小伙伴们好啊,今天和大家说说Excel中的近似查询问题。话说某单位组织员工考核,最后需要根据考核分数进行评定。
分数是从小到大排列的,首列中的分数就是等级标准的起始值,也就是达到这个分数或是超过这个分数了,就是对应的等级。先来说INDEX+MATCH的用法,这是一对查找应用的天生绝配,MATCH函数负责找出位置,INDEX函数负责根据这个位置找到对应的值,话不多说,看公式:=INDEX(F$3:F$6,MATCH(B2,E$3:E$6))
MATCH函数省略第三参数,表示在E3:E6这个区域中查找小于或等于B2单元格(75)的最大值。在E3:E6这个区域中,没有75这个值,就会以比75小、并且最接近75的数值60进行匹配,最终返回60在E3:E6这个区域中的位置2。INDEX函数再根据这个位置返回F3:F6单元格中对应的值。注意这里有一个前提:查询区域首列的值必须以升序排序,否则就乱了方寸了。有江湖的地方,就有VLOOKUP。使用VLOOKUP实现近似查找的公式为:
在这里,VLOOKUP函数第四参数省略掉了,默认执行的是近似的匹配方式。查找时,返回精确匹配值或近似匹配值。如果找不到精确匹配值,则返回小于查找值的最大值。LOOKUP函数可是简单而不简约,手起刀落之处,必是哀鸿遍野。
LOOKUP函数第一参数是查询值,第二参数是查询区域。在查询一个具体的值时,如果找不到这个查询值,则会与查询区域中小于查询值的最大值进行匹配。本例的第二参数是一个两列的区域,LOOKUP函数很聪明的从这个区域中的首列找到比查找值小并且最接近查找值的数字,并且返回这个区域最后一列对应位置的值。如果你使用的是Office 365,还可以使用XLOOKUP函数。
=XLOOKUP(B2,E$3:E$6,F$3:F$6,0,-1)
XLOOKUP在E列中查询B2的值,第五参数使用-1,表示如果找不到它,就以查询区域中下一个较小的值进行匹配。
如果第五参数是1,如果找不到查询值,就以查询区域中下一个较大的值进行匹配。
但是注意,除了XLOOKUP函数,其他几个函数要求查询区域的首列必须是从小到大排序,否则的话,得到的结果有可能就不正确啦。
好了,今天咱们的分享就是这些吧,祝各位一天好心情!