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