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

时间:2016-09-02 08:35:58

标签: excel rank

在Excel中,我的结果数据在类似于下面的列表中排序。我正在寻找一个公式来对班级排名'柱。我提出了以下似乎有效的方法,但没有考虑到“独特”的问题。 RaceID列。

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

在哪里&#39;班级&#39;指C:C&#39;。

不幸的是,这会产生&#39; 4&#39;对于单元格E7中的A类,即使Daniel是RaceID 0002的比赛获胜者。

第五列是期望的输出。

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值与当前行匹配时进行排名。我确信这不应该那么困难,但我很难完成这个公式。

1 个答案:

答案 0 :(得分:1)

如果我告诉你,那么这个非数组公式将会:

=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}
  

这是一个数组公式,必须用 ctrl + shift + 输入确认。