RANK関数とSMALL関数で順位の処理

あるセルの値が列(範囲)内で何番目に位置するか、「順位」を調べてみましょう。

範囲内の順位を求めるRANK関数

Excelの表計算シート上では、ある値が範囲内でどの順位に位置するかをRANK関数で求められます。RANK関数は、値と範囲を引数に指定すると値が範囲内で何番目に大きな数値かを返します(降順)。

たとえば、A1からA4に1,2,3,4という値が入っている状態でB1セルに

=RANK(A2,A1:A4)

と入力すると、A2の値(2)は「3番目に大きな数」ですから3が入るわけです。

Excelのセルで降順の順位を求めるRANK関数

RANK関数では小さい順(昇順)で見た値を取得することもできます。その場合は、引数の最後に1など0以外の値を追加します。以下のようにすると、A2の値を昇順で見た場合の順位(2)を求めることができます。

Excelのセルで昇順の順位を求めるRANK関数

もちろん、最初の引数に参照するセルではなく直接数値を指定することもできます。ただし、範囲内にその数値がない場合はエラーになるので注意してください。

順位に該当する数値を求めるSMALL関数とLARGE関数

続いて範囲内で「ある順位に該当する数値」を求めてみましょう。たとえば「A1:A4内で2番目に小さな数」ですね。

昇順の順位を指定してその数値を求めるにはSMALL関数を使用します。A1からA4に1,2,3,4という値が入っている状態で

=SMALL(A1:A4,2)

とすると、2番目に小さな数である2が求まるわけです。RANK関数とは引数の順序が逆なので、要注意ですね。

降順の順位に対応する数値を求める場合は、同様の引数でLARGE関数を呼び出します。

=LARGE(A1:A4,2)

とすると、今度は範囲内で2番目に大きな数である3が求まります。

SMALL関数に1を指定すると「範囲内の最小値」が、LARGE関数に1を指定すると「範囲内の最大値」が求められるので、最大/最小の値を求める場合に使うことも可能です。