同一类别项目的美式排名

美式排名的概念在此不用说了吧,如果不清楚这个概念,要先弄明白再看接下来的案例。如下图,是两个班级的几个学生的成绩,现在想要给他们做一份美式排名,注意是每个班级内部排名噢,而不是所有班级放在一起排。

当然可以一个班级一个班级来分别排,但是如果班级很多的话,恐怕就没有那么方便了,所以这里需要一种一次性处理的方法,请往下看。

方法1:在D2单元格里输入如下公式:

=RANK(C2,OFFSET($C$1,MATCH(A2,$A$2:$A$8,0),,COUNTIF($A$2:$A$8,A2)))

然后下拉填充至D8,得到如下结果:

公式解析:

(1)、公式通过OFFSET函数来定位某个班级的所有成绩来构成RANK函数的第二参数。

(2)、公式中“MATCH(A2,$A$2:$A$8,0)”是用来得到某个学生所在班级号在$A$2:$A$8单元格区域中第一次出现的位置,这个位置是不变的。你看甲乙丙丁这四个学生所在的班级101在$A$2:$A$8单元格区域中第一次出现的位置始终都是1,这样就可以直接充当OFFSET函数的第二个参数了。

(3)、公式中“COUNTIF($A$2:$A$8,A2)”是用来得到某个班级在$A$2:$A$8单元格区域中出现的次数,也就是这个班的人数,这样就可以直接充当OFFSET函数的第三个参数了。

方法2:

在D2单元格里输入如下公式:

=SUMPRODUCT(($A$2:$A$8=A2)*($C$2:$C$8>C2))+1

然后下拉填充至D8,得到如下结果:

公式解析:公式运用SUMPRODUCT函数的计数功能来完成的,比较容易理解原理。每次比较分数的时候,这里就拿甲来说吧,甲对应的分数是C2单元格的78分,公式中“($A$2:$A$8=A2)”是用来限定甲所在的班级,“($C$2:$C$8>C2)发

”是看在甲所在的班级里比他分数高的人数,显然只有一个丙(82分),那么在此基础上+1就得到了甲的排名。


这个案例需要注意的是A列中每个班级的编号要连续地在一起才可以运用上面的方法1,若不连续则只能运用方法2了。所以可看方法2的适用范围更广泛一些,不过这是建立在你完全理解这两种方法的原理本质的基础上噢。

快捷查看
(0)

相关推荐