RANK.EQ関数の使い方|Excelで数値に順位を付けよう

勇者たんたん
勇者たんたん

点数に順位を付けたいのですが、大きい順に並べ替えるだけではいけないのでしょうか?

順位を一時的に確認するだけなら、数値を大きい順や小さい順へ並べ替える方法でも構いません。

元の並び順を変えずに各数値の順位を表示したい場合は、RANK.EQ関数を使用します。

RANK.EQ関数では、同じ数値に同じ順位が表示されます。

同順位が2件ある場合は、その次の順位が飛ぶため、「1位・2位・2位・4位」のような結果になることがあります。

古いバージョンのExcelや以前に作成されたファイルでは、RANK関数が使用されている場合があります。

RANK関数とRANK.EQ関数は、通常の順位付けでは同じ引数を指定し、同じ結果を返します。この記事ではRANK.EQ関数を中心に解説し、RANK関数は旧バージョン向けの方法として補足します。

この記事では、RANK.EQ関数を使って、点数や売上などの数値に順位を付ける方法を解説します。

大きい数値と小さい数値のどちらを1位にするかを指定する方法、数式をコピーするための絶対参照、同順位の仕組みも確認しましょう。

今回のゴール

RANK.EQ関数で数値に順位を付け、同順位がある場合の結果も判断できるようになる

RANK.EQ関数とは数値に順位を付ける関数

RANK.EQ関数は、指定した数値が比較範囲の中で何位になるかを求める関数です。

点数や売上金額などの数値を比較し、各データの隣に順位を表示できます。

RANK.EQ関数

=RANK.EQ(数値,範囲,順序)

引数
数値:順位を調べたい数値またはセル
範囲:順位を比較する数値のセル範囲
順序:大きい順は0、小さい順は1

機能
指定した数値が、比較範囲の中で何位かを返す関数

主な結果
最大の数値 → 1位
同じ数値 → 同順位

※RANK関数も引数の指定方法と通常の順位結果は同じです。古いファイルではRANK関数が使用されている場合があります。

RANK.EQ関数の引数

「数値」には、順位を調べたい数値または数値が入力されたセルを指定します。

点数表でセルB2の順位を調べる場合は、B2を指定してください。

「範囲」には、順位を比較するすべての数値が入力されたセル範囲を指定します。

セルB2からB6までの点数を比較する場合は、B2:B6を指定します。

「順序」には、大きい数値と小さい数値のどちらを1位にするかを指定します。

大きい数値を1位にする場合は「0」、小さい数値を1位にする場合は「1」を指定してください。

引数の指定例

数値 : B2

範囲 : B2:B6

順序 : 0

大きい数値から順位を付ける

テストの点数や売上金額など、大きい数値を1位にする場合は、順序に「0」を指定します。

次の点数表で、セルB2の点数に順位を付けてみましょう。

使用する得点
B2:90
B3:80
B4:70
B5:60
B6:50

順位を求める数式を入力する

順位を表示するセルC2へ、次の数式を入力します。

=RANK.EQ(B2,$B$2:$B$6,0)

セルB2の点数を、B2からB6までの点数と比較し、大きい数値から何位になるかを求めています。

セルB2の「90」が範囲内で最も大きいため、計算結果は「1」です。

比較範囲を絶対参照にする

数式を下方向へコピーする場合は、順位を比較する範囲がずれないように絶対参照を使用します。

比較範囲のB2:B6を選択してF4キーを押すと、$B$2:$B$6へ変更できます。

数式をコピーしてもセル範囲を動かさない方法は、「Excelの絶対参照・相対参照・複合参照の違い」で詳しく解説しています。

比較範囲を固定しないと正しい順位にならない

比較範囲をB2:B6のまま数式をコピーすると、B3:B7、B4:B8のように参照範囲が移動します。

順位を比較する範囲には絶対参照を付け、すべての数値を同じ範囲で比較してください。

オートフィルで数式をコピーする

  1. セルC2へRANK.EQ関数を入力する
  2. セルC2を選択する
  3. セル右下のフィルハンドルを下方向へドラッグする
  4. セルC6まで数式をコピーする
  5. 各点数に順位が表示されたことを確認する
計算結果
90 → 1位
80 → 2位
70 → 3位
60 → 4位
50 → 5位
RANK.EQ関数の計算結果
比較範囲を絶対参照で固定すると、同じ範囲で各点数の順位を求められます。

同じ数式を複数のセルへコピーする方法は、「Excelのオートフィルの使い方」で解説しています。

大きい数値を1位にする場合は、順序に「0」を指定します。

小さい数値を1位にしたい場合は、順序の指定を変更しましょう。

小さい数値を1位にする

タイムや処理時間など、小さい数値を1位にする場合は、RANK.EQ関数の「順序」に1を指定します。

順位を比較する範囲や絶対参照の付け方は、大きい数値を1位にする場合と同じです。

使用するタイム
B2:50
B3:45
B4:60
B5:55
B6:40

数式
=RANK.EQ(B2,$B$2:$B$6,1)

セルB2の数値をB2からB6までの範囲と比較し、小さい数値から何位になるかを求めています。

範囲内で最も小さい「40」が1位になり、セルB2の「50」は3位になります。

計算結果
50 → 3位
45 → 2位
60 → 5位
55 → 4位
40 → 1位
順序の使い分け

点数や売上など、大きい数値を1位にする
→ 順序に0を指定する

タイムや処理時間など、小さい数値を1位にする
→ 順序に1を指定する

同じ数値がある場合は同順位になる

RANK.EQ関数では、比較範囲に同じ数値が複数ある場合、同じ順位が表示されます。

同順位になった件数に応じて、その後の順位が飛ぶことも確認しておきましょう。

同順位がある点数
90 → 1位
80 → 2位
80 → 2位
70 → 4位
60 → 5位

同順位の次は順位が飛ぶ

点数の「80」が2件ある場合は、どちらも2位になります。

2位が2件あるため、次の「70」は3位ではなく4位です。

順位が飛ぶのは計算ミスではない

「1位・2位・2位・4位」と表示され、3位がない状態は、RANK.EQ関数の正常な結果です。

同順位の次を連続した数字にする機能ではないため、順位が飛んでいても数式を修正する必要はありません。

同順位があるときの表示
同じ点数は同順位になり、その後の順位は同順位の件数に応じて飛びます。
古いExcelではRANK関数を使用する

古いバージョンのExcelや以前に作成されたファイルでは、RANK関数が使用されている場合があります。

RANK関数とRANK.EQ関数は、関数名が異なるだけで、引数の指定方法と通常の順位結果は同じです。

=RANK(B2,$B$2:$B$6,0)

新しく数式を作成する場合はRANK.EQ関数を使用し、古いファイルにRANK関数が入力されている場合は、そのまま使用できます。

勇者たんたん
勇者たんたん

同じ数値は同順位になり、その人数に応じて次の順位が飛ぶんですね!

RANK.EQ関数では、順序に0を指定すると大きい数値、1を指定すると小さい数値が1位になります。

最後に、並べ替えとRANK.EQ関数の使い分けを整理しましょう。

並べ替えとRANK.EQ関数を使い分ける

数値の大小を確認するだけであれば、大きい順や小さい順へ並べ替える方法でも構いません。

順位を表へ表示したままにする場合や、元の並び順を変えたくない場合は、RANK.EQ関数を使用します。

並べ替えとRANK.EQ関数の違い

並べ替え
数値を大きい順または小さい順に並べる
順位を一時的に確認するときに使いやすい
表の行順が変わる

RANK.EQ関数
元の並び順を変えずに順位を表示する
順位を各データの隣へ残せる
数値を変更すると順位も再計算される
同じ数値があるときの順位が分かりやすい

順位を確認する方法の選び方

上位や下位を一時的に確認したい
→ 大きい順または小さい順に並べ替える

元の並び順を変えずに順位を表示したい
→ RANK.EQ関数を使用する

数値の変更に合わせて順位も更新したい
→ RANK.EQ関数を使用する

並べ替えても順位は変わらない

RANK.EQ関数は、セルが表の上から何番目にあるかではなく、比較範囲内の数値の大きさから順位を求めます。

そのため、表を氏名順や点数順へ並べ替えても、同じ数値の順位は変わりません。

数値を大きい順や小さい順へ並べる方法は、「Excelでデータを並べ替える方法」で確認できます。

まとめ|順位を表に残すならRANK.EQ関数を使おう

RANK.EQ関数は、指定した数値が比較範囲の中で何位になるかを求める関数です。

元の並び順を変えずに順位を表示し、数値を変更したときに順位も更新できます。

RANK.EQ関数の確認ポイント

大きい数値を1位にする
→ 順序に0を指定する

小さい数値を1位にする
→ 順序に1を指定する

数式をコピーする
→ 比較範囲を絶対参照で固定する

同じ数値がある
→ 同順位になり、その後の順位が飛ぶ

古いExcelを使用する
→ RANK関数で同じ順位を求められる

同じ数値が複数ある場合は同順位になり、「1位・2位・2位・4位」のように次の順位が飛びます。

順位が飛んでいても計算ミスではないため、同順位の件数を確認してください。

勇者たんたん
勇者たんたん

順位を見るだけなら並べ替え、元の並び順を変えずに順位を残すならRANK.EQ関数を使えばよいんですね!

RANK.EQ関数を正しくコピーするには、セル参照と絶対参照の違いを理解することも大切です。

関数を基本から順番に学びたい場合は、Level3攻略フローから進めてください。

コメント

タイトルとURLをコピーしました