Excel 範囲内の順位を取得(RANK関数)

2020年5月12日

RANK関数は指定した数値が範囲内で何番目の大きさかを順位で返す関数です。

運動会やテストの結果の順位を計算する際に使用します。

RANK関数には同順位の扱いの異なる二つの関数が存在します。

関数機能
RANK.EQ関数同順位の場合、最大の順位を取得
RANK.AVG関数同順位の場合、平均の順位を取得

この記事では、その仕様と利用方法を紹介します。

仕様

同順位の場合、最大の順位を取得(RANK.EQ関数)

=RANK.EQ(数値,参照,順序)
引数省略時の値説明
数値省略不可順位を取得する数値を指定。
参照省略不可順位計算の対象となるセル範囲を指定。
順序0順位の付け方を指定
0:降順
1:昇順
各引数の詳細

同順位の場合、平均の順位を取得(RANK.AVG関数)

=RANK.AVG (数値,参照,順序)
引数省略時の値説明
数値省略不可順位を取得する数値を指定。
参照省略不可順位計算の対象となるセル範囲を指定。
順序0順位の付け方を指定
0:降順
1:昇順
各引数の詳細

利用例(関数/引数別 結果の違い)

数値と順序、EQ関数とAVG関数のそれぞれの結果の違いはこうなります。

RANK関数の性質上、どうしても数式コピーオートフィルを使用します。

参照のセル範囲は絶対参照($)か範囲名を付けるなど参照範囲が崩れないようにしましょう。

RANK関数の引数別、実行結果
RANK関数の引数別、実行結果

スピルを利用する方法とメリット

Office365やExcel2019以降ではスピルという形式で記述可能です。

これは複数セルに数式をコピーする場合に便利な機能です。

スピルの利用には引数1を複数セルの範囲で指定します。

この場合、数値と参照の指定が同じになることが多いでしょう。

またスピルであれば参照の絶対参照($)が不要です。

例ではRANK.EQ関数ですが、RANK.AVG関数でも同じです。

スピルでRANK.EQ関数を記述する例(C3セル)
スピルでRANK.EQ関数を記述する例(C3セル)

数式を入力するのは最初の一つのセルですが、

引数1で指定した高さ分、数式がセルのコピーなしで自動拡大されます。

C3に指定したRANK.EQ関数がC12まで自動拡大
C3に指定したRANK.EQ関数がC12まで自動拡大

スピルを利用することで今回の例では、

C3セルに入力するだけでよいため(C4以降にコピーペーストが不要)

以下のメリットがあります。

  • 入力の手間が少ない(数式のセルが多いほど効果が大きい)
  • 数式を編集した時、コピー忘れのリスクがない(最初のセルを更新すると全セルに反映)
  • 絶対参照が不要
  • 途中に行を追加した場合、数式のコピー&ペーストが不要。行削除でも壊れにくい。

関連記事

活用例

RANK関数で同順位を発生させずに順位表を作成する方法

順位をM件中N位や分数(N/M)の形式で表示する方法

逆の働きをするLARGE関数とSMALL関数の詳細

RANK関数で多用する絶対参照について

関数の仕様と使い方の記事一覧