如下图,C列是同学的考试成绩,现在要在D列展现分数等级,F3:H13是评级规则。首先考虑到的是用if函数,但是用if要进行9层嵌套,非常麻烦。 第一种高效的办法是使用index+match函数的模糊匹配,可以在D4单元格输入公式:=INDEX($H$4:$H$13,MATCH(C4,$G$4:$G$13,-1)),向下填充,就可以得到结果。 index函数的第一个参数是指定区域,第二个参数是相对位置,也就是match函数返回的值,意思是返回指定区域相对位置的值。match函数的第一个参数是查找值,第二个参数是查找区域,第三个参数-1代表模糊匹配。 match第三个参数为-1,前提要求是查找区域必须是降序,也就是数值由大到小,会返回比查找值大的最小的数值所在的位置,比如C4的值是88,会在G列进行查找比88大的最小值的位置,也就是89在G4:G13的相对位置2。2会作为index函数的第二个参数,也就是返回H4:H13第二个位置的值,也就是A。 第二种方法我们也可以用vlookup函数的模糊匹配,前提要求是查找区域必须是升序,需要重新构造辅助区域,如下图: 可以在D4单元格输入公式:=VLOOKUP(C4,$F$3:$H$13,3,TRUE) vlookup函数的第一个参数是查找值,第二个参数是查找区域,第三个参数是返回查找区域的第几列,第四个参数TRUE表示近似匹配。 vlookup第四个参数为TRUE,要求查找区域是升序的,数值由小到大排序,会返回比查找值小的最大的数值所在的行,比如C4的值是88,在查找区域F列中,比88小的最大值是85,就返回85所在行的第三列,也就是H12的值A。 什么时候用F列的值,什么使用用G列的值,要根据具体情况确定。 |
|