在Excel中按照唯一标准的出现顺序排列重复的文本值

在Excel中,我有一个类似于下面的列表中sorting的结果数据。 我正在寻找一个公式来排列“class级”栏目。 我想出了以下似乎可行的方法,但是没有考虑“独特的”RaceID专栏。

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

“Class”是指“C:C”。

不幸的是,即使丹尼尔是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} 

这是一个数组公式,必须用Ctrl + Shift + Enter确认