Excel公式获得排名位置

时间:2009-08-28 07:31:22

标签: excel

我有一张有积分的人。积分越多,你的位置越高。如果你有相同的积分,你就是第一,第二等等。

| A | B | ç
1 | 名称 | 职位 |的
2 | person1 | 1 | 10个
3 | person2 | 2 | 9
4 | person3 | 2 | 9
5 | person4 | 2 | 9
6 | person5 | 5 | 8
7 | person6 | 6 | 7

使用Excel公式,我该如何自动确定位置?我目前使用的IF语句适用于5或6个匹配位置,但我不能添加30+ if语句,因为公式有限制。

=IF(C7=C2,B2,IF(C7=C3,B2+5,IF(C7=C4,B3+4,....

因此,如果points列与上面的位置相同,则它是相同的位置值。如果这些点小于上述值,那么它将下降一个位置,使前一行位置+1。但是如果上面那一行是相同的那么它是前一个位置+2,依此类推。

6 个答案:

答案 0 :(得分:19)

您也可以使用 RANK 功能

=RANK(C2,$C$2:$C$7,0)

它将像您的示例一样返回数据:

  | A       | B        | C
1 | name    | position | points
2 | person1 | 1        | 10
3 | person2 | 2        | 9
4 | person3 | 2        | 9
5 | person4 | 2        | 9
6 | person5 | 5        | 8
7 | person6 | 6        | 7

'Points'列需要按降序排列。

答案 1 :(得分:2)

将此键入B3,然后将其拉到其余行:

=IF(C3=C2,B2,B2+COUNTIF($C$1:$C3,C2))

它的作用是:

  • 如果我的积分等于之前的积分,我的位置相同。
  • 按顺序计算与前一个玩家相同分数的玩家,并将他们的数字添加到之前玩家的位置。

答案 2 :(得分:1)

在第四栏中试试这个

=COUNTIF(B:B; ">" & B2) + 1

将B替换为B3用于下一行,依此类推。

它的作用是计算有多少记录有多个点然后当前一个,然后这会增加当前记录位置(+1部分)。

答案 3 :(得分:0)

如果您的C列已排序,您可以检查当前行是否等于您的最后一行。如果不是,请使用当前行号作为排名位置,否则使用上面的值(b3的值):

= IF(C3 = C2,B2,ROW() - 1)

如果您的C列未排序,您可以使用LARGE函数获取第n个最高值:

= LARGE(C2:C7,3)

答案 4 :(得分:0)

我这样做的方式有点令人费解,如下:

  1. 按行按降序排列行
  2. 从D2开始创建一个附加列(D),其中包含数字1,2,3,......总位数
  3. 在实际位置(D2)的单元格中,使用公式if(C2 = C1),D2,C1)。这将检查此行中的点是否与上一行中的点相同。如果它是它给你前一行的位置,否则它使用D列的值,从而处理具有相同位置的人。
  4. 将此公式复制到整个列
  5. 复制职位栏(C),然后粘贴特殊>>用位置
  6. 覆盖公式的值
  7. 将行按原始顺序排列
  8. 这对我有用!如果有更好的方式我会喜欢它!

答案 5 :(得分:0)

您可以在Excel中使用RANK功能,而无需对数据进行排序。 Type = RANK(C2,$ C $ 2:$ C $ 7)。 Excel将在C2中找到数据的相对位置并显示答案。通过拖动单元格光标右端的小节点将公式复制到C7。