これ何て呼びますか

EXCELのご相談です。
ゲームなどした時に 同じ順位が複数あった場合(例 1位が3人とか4位が2人など)、条件をつけて1位3人→1位、2位、3位  4位→4位、5位 のようにしたいのですが、どのような数式にしたらいいでしょうか。
添付の図でいいますと、順位(C列)1の人が2~4行の3人、順位4の人が5~6行の2人、順位7の人が8~9行の2人いた場合、同じ順位の中でイが多い人が上位、イの数が同じならばロが多い人が、またイ、ロとも数が同じならば ハの数が多い人が上位としたいのです。

「同じ順位同士をさらに条件をつけて順位付け」の質問画像

A 回答 (2件)

こんばんは!



一例です。
↓の画像のように作用用の列を設けます。
作業列I2セルに
=IF(A2="","",RANK(C2,C:C)*1000+D2*100+E2*10+F2)
という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。

そしてG2セルに
=IF(I2="","",RANK(I2,I:I))
という数式を入れオートフィルで下へコピーすると
画像のような感じになります。

※ すべての条件が同じ人がいた場合、G列にも同順位が発生してしまいます。
そこでも順位の差をつけたい場合は、一工夫必要になります。m(_ _)m
「同じ順位同士をさらに条件をつけて順位付け」の回答画像1
    • good
    • 0
この回答へのお礼

簡素な手法よく理解できました。RANKで順位を逆にして数値表示させるなんてすごいですね。どうもありがとうございました。

お礼日時:2012/11/10 21:23

 今仮に、元データがSheet1に存在しているものとします。


 そして、Sheet2のA列を作業列として使用するものとします。

 まず、Sheet2のA2セルに次の関数を入力して下さい。

=IF(ISNUMBER(INDEX(Sheet1!$B:$B,ROW())),"#"&TEXT(RANK(INDEX(Sheet1!$B:$B,ROW()),Sheet1!$B:$B),REPT("0",INT(LOG10(COUNT(Sheet1!$B:$B)))+1))&TEXT(INDEX(Sheet1!$D:$D,ROW()),REPT("0",INT(LOG10(MAX(Sheet1!$D:$D)))+1))&TEXT(INDEX(Sheet1!$E:$E,ROW()),REPT("0",INT(LOG10(MAX(Sheet1!$E:$E)))+1))&TEXT(INDEX(Sheet1!$F:$F,ROW()),REPT("0",INT(LOG10(MAX(Sheet1!$F:$F)))+1)),"")

 次に、Sheet2のA2セルをコピーして、Sheet2のA3以下に貼り付けて下さい。

 次に、Sheet1のG2セルに次の関数を入力して下さい。

=IF(ISNUMBER(INDEX($B:$B,ROW())),COUNTIF(Sheet2!$A:$A,">"&INDEX(Sheet2!$A:$A,ROW()))+1,"")

 次に、Sheet1のG2セルをコピーして、Sheet1のG3以下に貼り付けて下さい。
 以上です。
「同じ順位同士をさらに条件をつけて順位付け」の回答画像2
    • good
    • 0
この回答へのお礼

ありがとうございました。ずいぶんむずかしそうなのでゆっくり研究してみます。でも「け」行の大きな数値、あえて例として記載していただいたんだとうれしくおもいます。

お礼日時:2012/11/10 21:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!