こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

限定範囲内の数値に対するRANK関数について

エクセルについての質問です。

   A  B   C  D
1    11 22 33
2    10 20 30
3    15 25 36
4    12 24 36
5    18 27 

A列にRANK関数を使い「順位を入れたい」のです。

ただし以下のような決まりがあります。

   (1)D列にて値が33以上の数値を対象とし、
   (2)B列の数値を降順にランク付け

結果としては以下のようになる数式を目指していますがそのような関数はできますでしょうか。

   A   B   C  D
1  3  11 22 33
2     10 20 30
3  1  15 25 36
4  2  12 24 36
5     18 27 


対象がD列だけの数式でしたら
例えばA1のセルに
 =IF(OR(D1<33,D1=""),"",RANK(D1,$D$1:$D$5,FALSE))

と入力し、他のA列へコピーすれば良いと思うのですがさらにその結果を対象とした数式がどうにもよくわかりません。
お分かりの方いらっしゃいましたら教えて頂けますでしょうか。

投稿日時 - 2006-02-06 23:37:23

QNo.1948865

すぐに回答ほしいです

質問者が選んだベストアンサー

>列を増やさずにやる方法はやはりないのでしょうか。

RANK関数を使わないやり方でもよろしければ、
A1:
=IF(D1<33,"",SUM(IF(D$1:D$5>=33,IF(B$1:B$5>B1,1)))+1)

配列数式です。
式を入力後、Ctrl+Shiftキーを押しながら Enterで確定してください。
式が { }で囲まれます( 数式バーを見てください )
{ }で囲まれていなかったら、
F2キーを押してから、もう一度 Ctrl+Shift+Enter してみてください。
確定後、A5セルまでフィルコピー

配列数式については参考URLをご覧ください。

RANK関数では、作業列を使わないとできないと思います( たぶん )。
E1:
=IF(D1>=33,B1,"")

↑E5までコピー

A1:
=IF(E1="","",RANK(E1,E$1:E$5))

↑A5までコピー

参考URL:http://pc21.nikkeibp.co.jp/special/hr/

投稿日時 - 2006-02-07 00:19:39

お礼

配列数式ですか!私の知識にはないやりかたでした。
参考サイトも拝見させていただき、じっくり考えたいと思います。
良い情報をありがとうございました!

投稿日時 - 2006-02-07 00:30:21

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

 A B C D E
1 3 11 22 33 11
2  10 20 30
3 1 15 25 36 15
4 2 12 24 36 12
5  18 27

1.セル E1 に次式を入力して、此れを下方にセル E5 まで複写
  =IF(D1>=33,B1,"")
2.セル A1 に次式を入力して、此れを下方にセル A5 まで複写
  =IF(ISERROR(RANK(E1,E$1:E$5)),"",RANK(E1,E$1:E$5))

投稿日時 - 2006-02-07 00:05:06

お礼

早速のご回答ありがとうございます。
なるほど、列を増やして該当のグループを作るわけですね。列を増やさずにやる方法はやはりないのでしょうか。
参考になりました。ありがとうございました。

投稿日時 - 2006-02-07 00:08:43

あなたにオススメの質問