RANK函数返回某数字在一列数字中相对于其他数值的大小排名。
图1
什么情况下使用RANK函数?
RANK函数可用来计算某数字在一列数字中的顺序位置,它能够:
对一列数字进行排位
对学生的分数排名
计算短跑名次
突出显示前两名
RANK函数语法
RANK函数返回一列数字的数字排位,反映其相对于列表中其他值的大小。RANK函数有3个参数,其语法如下:
RANK(number,ref,[order])
参数number,需要排位的数字。
参数ref,一列数字或对一列数字的引用,忽略其中的非数字值。
参数order,可选,用来指定排位的方式。如果order为0或省略,则对数字的排位是基于ref为按照降序排列的列表。如果order不为零,则对数字的排位是基于ref为按照升序排列的列表。
对于列表中的重复数,排位相同,但占用后续数值的排位值。例如,在按升序排序的整数列表中,如果数字20出现两次,且其排位为6,则21的排位为8。
RANK函数陷阱
在2007之后新版本的Excel中,此函数已被替换为一个或多个新函数,可提供更高的精确度,因此RANK函数在Excel将来的版本中可能不再可用。
如果要排位的数字不在列表中,则返回#N/A。
示例1: 对一列数字进行排位
要计算图2所示工作表单元格区域A2:A9中各数字的排位,可在单元格B2中输入公式:
=RANK(A2,$A$2:$A$9)
下拉至单元格B9,结果如图2所示。
图2
示例2:对学生的分数排名
如图3所示,在单元格C2中输入公式:
=RANK(B2,分数)
下拉至单元格C8,生成学生分数排名。其中,将单元格区域B2:B8命名为“分数”。
图3
示例3:计算短跑名次
在短跑竞赛时,用时越少,排名越靠前,此时需要设置RANK函数的第3个参数,让排名升序排列,也就是说,最小的数排在第1,最大的数排在最后。如图4所示,计算100m跑的名称,在单元格C2中输入公式:
=RANK(B2,times,1)
下拉至单元格C8。其中,命名单元格区域B2:B8为 “times”。
图4
示例4:突出显示前两名
在条件格式中使用RANK函数,来突出显示排在前面两名的学生姓名,如图5所示。
图5
选择单元格区域A2:B8,设置条件格式如图6所示。
图6
示例5:获取最高分学生姓名
如图7所示,数组公式:
=INDEX(A2:A8,MATCH(1,RANK(B2:B8,B2:B8),0))
获取列表中分数最高的学生姓名。
图7
技巧:由于INDEX函数不接受分数作为参数,因此在这种情形下,可以使用RANK函数获得排位的整数列表,将其作为INDEX函数的参数来获取相应的数值。