我有一张有积分的人。积分越多,你的位置越高。如果你有相同的积分,你就是第一,第二等等。
| 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,依此类推。
答案 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)
我这样做的方式有点令人费解,如下:
这对我有用!如果有更好的方式我会喜欢它!
答案 5 :(得分:0)
您可以在Excel中使用RANK功能,而无需对数据进行排序。 Type = RANK(C2,$ C $ 2:$ C $ 7)。 Excel将在C2中找到数据的相对位置并显示答案。通过拖动单元格光标右端的小节点将公式复制到C7。