アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

表題の通りなのですが、Excelでマイナス値も含めた点数があり、それに順位を付ける場合の式を教えてください。

例えば
   A   B  
1  20
2  24
3   0
4  -5

とした場合、通常の式 「=RANK(A1,$B$1:$B$4,0)」 で良いと思うのですが、それでは 
   A   B
1  20   2
2  24   1
3   0    3
4  -5   4
となりますよね?

しかし、こうではなく
   A   B
1  20   2
2  24   1
3   0   -
4  -5   3

のようにゼロの部分を除いた範囲で順位付けをしたいのです。

見づらくて大変申し訳ありませんが、お知恵をいただければ幸いです。

A 回答 (3件)

RANK関数の代替は,自分より大きいデータの個数+1番と数えます。


B1:
=IF(A1=0,"-",SUMPRODUCT(($A$1:$A$10<>0)*($A$1:$A$10>A1))+1)
以下コピー。

#参考:同得点を出現順などにして同順位にしない計算も,この応用です。



また既出ご回答の秀逸なアイデアを拝借して
=IF(A1=0,"-",RANK(A1,A:A,0)-IF(A1<0,COUNTIF(A:A,0)))
のようなやり方でもできますね。
    • good
    • 2
この回答へのお礼

おー!できました!

下の方がスッキリしていていいですね。
ありがとうございました!

お礼日時:2011/04/12 15:25

一例です。


=IF(A1<>0,RANK(A1,INDEX(IF($A$1:$A$4=0,"",$A$1:$A$4),),0),"-")
    • good
    • 0
この回答へのお礼

んー、残念ながらゼロが計算されてしまいますね。
見かけ上”-”にはなりますが、これでは3位が無いことになってしまいます。

参考にさせていただきます。
ありがとうございました。

お礼日時:2011/04/12 15:25

こんにちは!


無理矢理って感じの一例です。
データは質問通りA列の1行目からあるとします。
とりあえず100行目まで対応できるようにしてみました。

B1セルに
=IF(A1="","",IF(A1=0,"-",IF(A1>0,COUNTIF($A$1:$A$100,">"&A1)+1,COUNTIF($A$1:$A$100,">"&A1)+1-COUNTIF($A$1:$A$100,0))))
としてオートフィルで下へコピーではどうでしょうか?

他に良い方法があればごめんなさいね。m(__)m
    • good
    • 0
この回答へのお礼

できましたが、ちょっと長すぎるかと(^^;

参考にさせていただきます。
早々のご回答ありがとうございました。

お礼日時:2011/04/12 15:22

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

このQ&Aを見た人はこんなQ&Aも見ています