rank函数最常用的是求某一个数值在某一区域内的排名。

rank函数语法形式:rank(number,ref,[order])

函数名后面的参数中 number 为需要求排名的那个数值或者单元格名称(单元格内必须为数字),ref 为排名的参照数值区域,order的为0和1,默认不用输入,得到的就是从大到小的排名,若是想求倒数第几,order的值请使用1。

下面给出几个rank函数的范例:

示例1:正排名

此例中,我们在B2单元格求20这个数值在 A1:A5 区域内的排名情况,我们并没有输入order参数,不输入order参数的情况下,默认order值为0,也就是从高到低排序。此例中20在 A1:A5 区域内的正排序是1,所以显示的结果是1。

示例2:倒排名

此例中,我们在上面示例的情况下,将order值输入为1,发现结果大变,因为order值为1,意思是求倒数的排名,20在A1:A5 区域内的倒数排名就是4。

示例3:求一列数的排名

在实际应用中,我们往往需要求某一列的数值的排名情况,例如,我们求A1到A5单元格内的数据的各自排名情况。我们可以使用单元格引用的方法来排名:=rank(a1,a1:a5) ,此公式就是求a1单元格在a1:a5单元格的排名情况,当我们使用自动填充工具拖拽数据时,发现结果是不对的,仔细研究一下,发现a2单元格的公式居然变成了 =rank(a2,a2:a6) 这超出了我们的预期,我们比较的数据的区域是a1:a5,不能变化,所以,我们需要使用 $ 符号锁定公式中 a1:a2 这段公式,所以,a1单元格的公式就变成了 =rank(a1,a$1:a$5)。

如果你不记得此函数如何使用,你可以点击“插入”“函数”,类别选择“全部”,然后任意选择下方的一个函数名,然后按键盘上的“R”键,你很快就可以找到rank函数了,三个参数的用法如上所述。

如果你想求A列数据的倒数排名你会吗?参考例3和例2。

以下是补充:

当班主任,总免不了要给学生排个名次什么的。比如如图1所示成绩表,如果需要保持原表的姓名顺序不变并给所有学生排定名次的话,那么以往的一个可行做法是:

先利用工具栏中的[自动求和]按钮计算出每个学生的总分,然后点击菜单命令“数据→排序”,打开“排序”对话框,“主要关键字”选择“总分”,并选中右侧的“降序”单选项。点击[确定]按钮,就可以实现将所有人的成绩按总分以降序排列了。

之后要做的就是在名次列中手工依次输入每名学生的成绩。如果数据量比较大时,可以先输入1、2、3后,选中这三个单元格,然后把鼠标移到单元格右下角的小方块上,待鼠标变成十字形后向下拖动,自动产生数字。

最后,点击菜单命令“数据→排序”,打开“排序”对话框。这次以“编号”为主要关键字,并选中右侧的“升序”单选项。此时才出现我们想要的结果。

不过,这个办法还是有些麻烦,主要表现在两个方面:

  1. 完成全部的排序工作要分别以“总分”和“编号”为关键字进行两次排序。如果不幸在数据表中忘记设置“编号”列,那么第一次排序之后,想再回到原来的序列顺序麻烦就大了(呵呵,您也甭笑,当初我就多次遇到过这种事,可谓前车之鉴)。
  2. 最麻烦的是排名次。以总分为关键字排好序后,需要人工填入名次,这当然会很麻烦。虽然,您可以使用填充柄自动输入数列的功能完成快速输入,但这也会带来另外一个麻烦,那就是如果总分相同,按通常的情况,他们的名次应该是相同的,不过,自动填充功能是不会做到这一点的。所以还需要手工修改有关的名次。

如果有成百上千的数据,岂不会弄得头都大了?

现在,我们来看看如何更快、更好地排出这个无规律的数列。

1. 在“总分”列的F2单元格输入“=SUM(C2:E2)”,然后按下回车键,第一个学生的总分就会计算出来了。

图1 原始成绩表

2. 在“名次”列的“G2”单元格输入“=RANK(F2,$F$2:$F$7)”,然后按下回车键,第一位学生的名次也就出来了。怎么,名次不对?不要紧,往后看。对了,还要说一句,那就是上面公式中那个“$F$7”是“总分”栏中的最后一个数据的位置,实际中可以根据表格中的实际情况来填写。

3. 选中F2和G2单元格,然后拖动填充柄向下至最后一个单元格,看到了吗?所有人的总分和名次都在瞬间完成了(如图2)。而且更妙的是,按照这种方法,如果总分相同,名次也是相同的。数据越多,这种方法就越能体现出它的优势。试试看吧!

图2 排好序的表

最后要提醒的是,在用于排名次的“=RANK(F2,$F$2:$F$7)”公式中,可千万不要忽略了符号“$”呀!名次到底能不能排得准确无误,它可是起到很重要的作用呢。