あなたがRANK
機能を使用したくない理由はわかりません。
私がやったと私は、次の定義名を使用:テーブルはサブグループによってソートされているので、私はのためにのみ関連する値を返すために高さパラメータでOFFSET
機能を利用することができました
SubGroup =Sheet1!$A$2:$A$800
Values =Sheet1!$B$2:$B$800
を各サブグループ
RANK
=IF(B2="","",RANK(B2,OFFSET($A$1,MATCH(A2,SubGroup,0),1,COUNTIF(SubGroup,A2)),1))
UNIQUE RANK
=IF(B2="","",RANK(B2,OFFSET($A$1,MATCH(A2,SubGroup,0),1,COUNTIF(SubGroup,A2)),1)+COUNTIFS($A$2:A2,A2,$B$2:B2,B2)-1)
DENSE RANK
=IF(B2="","",SUMPRODUCT((FREQUENCY(OFFSET($A$1,MATCH(A2,SubGroup,0),1,COUNTIF(SubGroup,A2)), OFFSET($A$1,MATCH(A2,SubGroup,0),1,COUNTIF(SubGroup,A2))) > 0) * (B2 >= OFFSET($A$1,MATCH(A2,SubGroup,0),1,1+COUNTIF(SubGroup,A2)))))
なお、最終的な用語DENSE RANKの数式には、COUNTIF(SubGroup,A2)
の数式で返される数よりも1つの追加要素があります。
私はあなたの方法と同様のソリューションを働きました。しかし、それは本当に面倒です。あなたたちは美しく働きます! @Ron Rosenfeld: –
密度ランクについては、#AN/Aエラーがあり、式の最後の部分を1,1 + COUNTIF(SubGroup、A2))))))))から1に変更しました。 、COUNTIF(SubGroup、A2)))))。出来た。とても有難い! –
@ C.C私が提示したものとは異なる設定が必要です。 '1 +'を省略すると、 '#NA'というエラーが出ます。おそらく誤って列ラベルの行を範囲に含めるのでしたか? –