当我们需要对一组数据进行排序时,自然而然地就会想到RANK函数。
RANK函数返回某数字在一组数字中相对于其他数值的大小的排名,其语法为:
RANK(number,ref,order)
其中:
- 参数number代表要获取排名的数字。
- 参数ref代表一组数字或对数字的引用。
- 参数order指定为0,降序排列;指定为1,升序排列。
如下图1所示的工作表,要对每名学生的成绩进行排序。可以在单元格C2中输入公式:
=RANK(B2,B2:B8,0)
向下拉至单元格C8。
图1
可以看出,使用RANK函数进行排序非常方便。然而,如果两人或多人的分数相同,此时RANK函数会给出并列排名的结果,如下图2所示。
图2
如果我们不想要相同的数字给出相同的排名,而是希望输入在前的数字排名靠前,如下图3所示,怎么做呢?
图3
可以在单元格C2中输入公式:
=RANK(B2,B2:B8,0) COUNTIF(B2:B2,B2)-1
向下拉至单元格C8即可。
此公式中,
COUNTIF(B2:B2,B2)
统计对应列B中的值在其及上方单元格区域中出现的次数,如果只出现1次,减去1,排名保持不变;如果出现2次,减去1,将结果增加到RANK函数给出的排名中得到最终排名。