RANK函数返回某数字在一列数字中相对于其他数值的大小排名。

函数学习之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所示。

函数学习之RANK函数

图2

示例2:对学生的分数排名

如图3所示,在单元格C2中输入公式:

=RANK(B2,分数)

下拉至单元格C8,生成学生分数排名。其中,将单元格区域B2:B8命名为“分数”。

函数学习之RANK函数

图3

示例3:计算短跑名次

在短跑竞赛时,用时越少,排名越靠前,此时需要设置RANK函数的第3个参数,让排名升序排列,也就是说,最小的数排在第1,最大的数排在最后。如图4所示,计算100m跑的名称,在单元格C2中输入公式:

=RANK(B2,times,1)

下拉至单元格C8。其中,命名单元格区域B2:B8为 “times”。

函数学习之RANK函数

图4

示例4:突出显示前两名

在条件格式中使用RANK函数,来突出显示排在前面两名的学生姓名,如图5所示。

函数学习之RANK函数

图5

选择单元格区域A2:B8,设置条件格式如图6所示。

函数学习之RANK函数

图6

示例5:获取最高分学生姓名

如图7所示,数组公式:

=INDEX(A2:A8,MATCH(1,RANK(B2:B8,B2:B8),0))

获取列表中分数最高的学生姓名。

函数学习之RANK函数

图7

技巧:由于INDEX函数不接受分数作为参数,因此在这种情形下,可以使用RANK函数获得排位的整数列表,将其作为INDEX函数的参数来获取相应的数值。