excel - 根据唯一条件的出现顺序对 Excel 中的重复文本值进行排名

标签 excel rank

在 Excel 中,我的结果数据按类似于下面的列表排序。我正在寻找一个公式来对“类别”列进行排名。我提出了以下似乎可行的方法,但没有考虑“独特”的 RaceID 列。

={COUNTIF(Class,"<"&C2)+SUM(IF(C2=$C$2:C2, 1, 0))-(SUMPRODUCT(--(C2>C$2:C$11))+1)}

其中“Class”指的是“C:C”。

不幸的是,即使 Daniel 是 RaceID 0002 的比赛获胜者,这也会在单元格 E7 中产生 A 级结果“4”。

第五列是所需的输出。

Col A     Col B          Col C    Col D     Col E
RaceID    Overall Pos    Class    Name      Class rank
0001      1              A        Jack      1
0001      2              A        Matt      2
0001      3              A        Daniel    3
0001      4              B        Gordon    1
0001      5              B        Phillip   2
0002      1              A        Daniel    1
0002      2              A        Matt      2
0002      3              B        Günther   1
0002      4              B        Gordon    2
0002      5              A        Jack      3

我需要的是能够将此公式扩展到仅当 RaceID 值与当前行匹配时才排名。我确信这应该不会那么困难,但我正在努力完成公式。

最佳答案

如果我的理解是正确的,那么这个非数组公式就可以了:

=COUNTIFS(A:A,A2,B:B,"<"&B2,C:C,C2)+1

编辑

如果您的 Excel 不支持 COUNTIFS 那么这个公式也可以:

{=SUM(IF(($A$1:INDEX(A:A,MATCH("zzz",D:D))=A2)*($C$1:INDEX(C:C,MATCH("zzz",D:D))=C2),$B$1:INDEX(B:B,MATCH("zzz",D:D))<B2)*1)+1}

This is an array formula and must be confirmed with ctrl+shift+enter.

关于excel - 根据唯一条件的出现顺序对 Excel 中的重复文本值进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39287893/

相关文章:

java - 如何检查excel文件是否为空?

sql-server-2008 - 共享查询数据库的 Excel 文件

vba - Excel 宏文本到列

sql - 我该如何编写这个 Postgres 查询?

python - 为什么 pandas "rank"百分位数不介于 0 和 1 之间?

匹配 Excel 文件扩展名的 C# 正则表达式

vba - 多个连续日期

python - 在 Tensorflow 中查找子矩阵的秩

delphi - FindFirst、FindNext(Delphi Xe、Win7)排名不正确

mysql - MySQL 中的 ROW_NUMBER()