【Excel】順位付けに使えるRANK関数(RANK.EQ関数)の使い方!エラーが出る理由も解説

【Excel】順位付けに使えるRANK関数(RANK.EQ関数)の使い方!エラーが出る理由も解説

エクセル関数では、指定した数値の順位を求めることができます。効率的に順位を表示できるようになれば、成績表や売れ筋商品のランキングを簡単に作成可能です。

こちらでは、順位付けに役立つ「RANK関数(RANK.EQ関数)」についてお話しします。

ExcelRANK関数とは、どんな時に使える関数か?

RANK(ランク)関数は、ある数値データが全体の何番目に大きいか、あるいは小さいかを表示する関数です。「ランキング」から関数名が付けられています。

RANK関数を用いれば、不規則に並んだ数値データの順位がわかります。社員別の契約件数から成績順を知りたい場合や、販売数から売れ筋商品のランキングを作りたい場合などに便利な関数です。

下図は、RANK関数を利用して契約件数から成績順位を表示した例です。

RANK関数を使った成績順位を表示した例

ExcelRANK関数の使い方

RANK関数の一般的な入力形式は「=RANK(数値,参照,順序)」です。
以下では、各引数や実際にRANK関数を使う際のポイントについてお話します。

RANK関数は「数値」「参照」「順序」で構成されています。
それぞれ、何を入れればいいのか、見ていきましょう。

  • 数値とは、全体の中での順位を知りたい数字のことです。
    画像の表を例にすると、社員Aの順位を知りたい場合は、Aの契約件数「5」が数値に該当しますので、B2のセルを指定します。
  • 参照とは、順位付けの裏付けとなる全体のデータです。画像の例では「5」「4」「7」「3」「5」という全員の成績が参照になりますので、B2B3B4B5B65つのセルをすべて選択し、指定することになります。
  • 順序とは、「降順(数の大きいものが上位)」と「昇順(数の小さいものが上位)」のどちらで順位を表示するか決める要素です。0」、もしくは何も入力しない場合は降順になり、「0」以外の数値を入力した場合は昇順になります。
    先ほどの図では、契約件数が1番多い人が1位、一番少ない人が最下位という順にランク付けをしたいため、「降順」になるように「0」を入力します。もちろん、何も入力しないままでも降順になります。

RANK関数の入力法を簡単に表すと
=RANK(順位を付けたい値, 順位を付けたい範囲, 順位を付ける順序)」
です。実際には、数値はセル指定で、参照はセルの範囲指定で入力するケースがほとんどです。

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

ExcelRANK関数の使い方で注意すべきポイントは?

ExcelRANK関数を使う上での以下の注意点について、説明します。

  • 「参照」は絶対参照にする
  • 「数値」は「参照」の範囲内で指定する
  • 同じ数字は同じ順位で表示される

「参照」は絶対参照にする

RANK関数で各数値の順位を表示したい場合、オートフィルで関数をコピーすると便利です。しかし、通常の「相対参照」ではコピー先のセルに応じて参照の範囲が移動してしまいます。

「参照」が相対参照で指定されている場合に起こるエラーをご紹介しましょう。

RANK関数でのエラーの例

社員Aの成績を表示するRANK関数では正しく「参照」が指定されているため、正しい順位が指定されています。

「参照」を相対参照で指定した時に起こるエラーの例

しかし、このままコピーすると、図のように「参照」のセル範囲がひとつずつ下にずれていきます。本来、社員Dの成績は5位、社員Eの成績は2位ですが、参照として数値のないセルが含まれているため正しい順位が表示されていません。

相対参照はセル指定の効率化ができる便利な機能ですが、このケースには不適切です。このように、コピーすることを想定すると、相対参照ではなくコピー先のセルによって指定セルが移動しない「絶対参照」が適切といえます。

行番号と列番号の前に「$」を入力すると、絶対参照で範囲指定できます。

上の例の場合は「$B$2:$B$6」と入力しておくことで解決します。

絶対参照についてさらにくわしく知りたい方は、こちらの記事をご覧ください。

「数値」は「参照」の範囲内で指定する

RANK関数は「数値」が「参照」の中で何位なのかを表示する関数です。数値が参照の中に含まれている必要があります。「参照」の範囲外から「数値」を指定した場合、どのような結果表示されるのでしょうか?

「数値」を「参照」の範囲外から指定した例

新たに社員Fの契約件数を入力したセルを設けました。全員の中でFの契約件数はトップです。しかし、「参照」でA~Eの契約件数のみを指定すると……。

RANK関数のエラー表示の例

エラーを示す「#N/A」が表示されます。これは、Fの契約件数「8」が「参照」の中に見つからず、順位がわからないためです。

このような場合は、Fの契約件数「8」を含むように「参照」を指定しなおす必要があります。

同じ数字は同じ順位で表示される

RANK関数の仕様により、「数値」が同じ場合、同じ順位が表示されます。

同じ数字が同じ順位で表示されるRANK関数の仕様

例として、画像では社員AEの契約件数が同じなため、同じ順位が表示されています。

 

RANK関数とRANK.EQ関数、RANK.AVG関数の違いとは?なぜエラーが出るの?

RANK関数とよく似た関数に「RANK.EQ関数」「RANK.AVG関数」があります。それぞれの違いについてお話しします。

RANK.EQ関数

RANK.EQ関数とRANK関数の間に明確な違いありません。関数の結果も同じものが表示されます。

RANK.EQ関数はExcel 2010で後述する「RANK.AVG関数」と共に生まれた関数です。それ以前のExcel 2007までは、順位を表示する関数はRANK関数しかありませんでした。

RANK.EQ関数が生まれた背景には「RANK.AVG関数」との差別化という意図があります。実際にはExcel 2010以降もRANK関数が残っており、機能は共通なため、両者の違いを意識する必要はありません。

しかし、RANK.EQ関数はExcel 2010で実装された関数であるため、そのExcelファイルをExcel 2007以前のバージョンでも操作する場合は、RANK関数を用いるのが無難です。旧バージョンのExcelでも、RANK.EQ関数を用いて作成された表は表示可能ですが、数値を入れ替えると再計算ができないためエラーが表示されます。
※下図のようにExcel 2010以降では、RANK関数には「注意マーク」が記載されています。

rank関数エラー

RANK.AVG関数」

RANK.AVG関数はRANK関数と同じように「数値」の順位を表示する関数です。RANK関数との違いは、同じ「数値」が複数「参照」に登場している場合、つまり、同順位の要素が含まれる場合の表示方法です。

RANK.AVG関数での順位表示例

上図のように、契約件数が同じ社員AEの順位が、RANK.AVG関数では「2.5」と表示されました。RANK.AVG関数は、順位を「同順位の要素との平均」で表す関数です。この例の場合、同率2位となる同じ数値(本来は2位と3位になる数値)が2つ存在したため、どちらにも平均値の「2.5」が順位として表示されています。

エクセルで各データの順位を求める機会は少なくありません。RANK関数は複数のデータの順位を素早く表示できる便利な関数です。

決して難しくない基本的な関数であるため、ぜひマスターしておきましょう。