按照唯一条件的出现顺序对 Excel 中的重复文本值进行排名
Rank duplicate text values in Excel by order of occurrence for unique criteria
在 Excel 中,我的结果数据在类似于下面的列表中排序。我正在寻找对 'class' 列进行排名的公式。我想出了以下似乎可行的方法,但没有考虑 'unique' RaceID 列。
={COUNTIF(Class,"<"&C2)+SUM(IF(C2=$C:C2, 1, 0))-(SUMPRODUCT(--(C2>C:C))+1)}
其中'Class'指的是'C:C'。
不幸的是,这会在单元格 E7 中为 Class A 产生结果“4”,即使 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 值与当前行匹配时进行排名。我相信这应该不会那么困难,但我正在努力完成公式。
如果我没猜错,那么这个非数组公式就可以:
=COUNTIFS(A:A,A2,B:B,"<"&B2,C:C,C2)+1
编辑
如果您的 excel 不支持 COUNTIFS
那么这个公式也可以:
{=SUM(IF(($A:INDEX(A:A,MATCH("zzz",D:D))=A2)*($C:INDEX(C:C,MATCH("zzz",D:D))=C2),$B:INDEX(B:B,MATCH("zzz",D:D))<B2)*1)+1}
This is an array formula and must be confirmed with ctrl+shift+enter.
在 Excel 中,我的结果数据在类似于下面的列表中排序。我正在寻找对 'class' 列进行排名的公式。我想出了以下似乎可行的方法,但没有考虑 'unique' RaceID 列。
={COUNTIF(Class,"<"&C2)+SUM(IF(C2=$C:C2, 1, 0))-(SUMPRODUCT(--(C2>C:C))+1)}
其中'Class'指的是'C:C'。
不幸的是,这会在单元格 E7 中为 Class A 产生结果“4”,即使 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 值与当前行匹配时进行排名。我相信这应该不会那么困难,但我正在努力完成公式。
如果我没猜错,那么这个非数组公式就可以:
=COUNTIFS(A:A,A2,B:B,"<"&B2,C:C,C2)+1
编辑
如果您的 excel 不支持 COUNTIFS
那么这个公式也可以:
{=SUM(IF(($A:INDEX(A:A,MATCH("zzz",D:D))=A2)*($C:INDEX(C:C,MATCH("zzz",D:D))=C2),$B:INDEX(B:B,MATCH("zzz",D:D))<B2)*1)+1}
This is an array formula and must be confirmed with ctrl+shift+enter.