使用基于dynamic相邻列值的excel等级函数

假设; 我有以下表格:

Group Nam ID Score Rank London B 1 88 London C 2 7 London A 3 45 London D 4 23 London E 5 2 London F 6 56 Sydney C 1 7 Sydney B 2 98 Sydney A 3 12 Tokyo R 1 45 Tokyo Z 2 23 Tokyo A 3 56 Tokyo G 4 86 Tokyo E 5 19 

我想用一个公式来填补排名,这样我可以分别得到每个组的排名。 我目前使用的公式是排名第一列的是:

 =RANK(D2,$D$2:$D$7,1) 

我可以拖动的公式,直到伦敦组的结束,但悉尼组或任何新的组,我input一个新的公式来定义参考范围参数的公式。

有没有简单的方法来做到这一点? 所以我可以input一个单一的公式成排列第一行,并拖动到表…我要这样做超过17000logging。 一些规则; 组列被sorting,id列被sorting为asc。

谢谢

一些规则:组列被sorting,id列被sorting为asc。

试试这个公式:

=RANK(D2,INDEX(D:D,MATCH(A2,A:A,0)):INDEX(D:D,MATCH(A2,A:A,0)+COUNTIF(A:A,A2)-1),1)

A:A是你的“组”列。

一种可能是将第2行的这个公式拷贝下来

=COUNTIFS(A:A,A2,D:D,"<"&D2)+1

通过计算与当前行相同的组的行数,并且得分低于当前行的得分,则实际上得到“升序排名”,但排名从零开始,因此+1按照常规排名从1开始

simoco's解决scheme可能更有效的sorting值 – 即使没有sorting,这个工作