• ベストアンサー

限定範囲内の数値に対する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列へコピーすれば良いと思うのですがさらにその結果を対象とした数式がどうにもよくわかりません。 お分かりの方いらっしゃいましたら教えて頂けますでしょうか。

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

  • ベストアンサー
  • EL-SUR
  • ベストアンサー率76% (83/108)
回答No.2

>列を増やさずにやる方法はやはりないのでしょうか。 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/
einsiedler
質問者

お礼

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

その他の回答 (1)

noname#204879
noname#204879
回答No.1

 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))

einsiedler
質問者

お礼

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

関連するQ&A