
点数に順位を付けたいのですが、大きい順に並べ替えるだけではいけないのでしょうか?
順位を一時的に確認するだけなら、数値を大きい順や小さい順へ並べ替える方法でも構いません。
元の並び順を変えずに各数値の順位を表示したい場合は、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(数値,範囲,順序)
引数
数値:順位を調べたい数値またはセル
範囲:順位を比較する数値のセル範囲
順序:大きい順は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のように参照範囲が移動します。
順位を比較する範囲には絶対参照を付け、すべての数値を同じ範囲で比較してください。
オートフィルで数式をコピーする
- セルC2へRANK.EQ関数を入力する
- セルC2を選択する
- セル右下のフィルハンドルを下方向へドラッグする
- セルC6まで数式をコピーする
- 各点数に順位が表示されたことを確認する
計算結果
90 → 1位
80 → 2位
70 → 3位
60 → 4位
50 → 5位

同じ数式を複数のセルへコピーする方法は、「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関数が使用されている場合があります。
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関数は、セルが表の上から何番目にあるかではなく、比較範囲内の数値の大きさから順位を求めます。
そのため、表を氏名順や点数順へ並べ替えても、同じ数値の順位は変わりません。
数値を大きい順や小さい順へ並べる方法は、「Excelでデータを並べ替える方法」で確認できます。
まとめ|順位を表に残すならRANK.EQ関数を使おう
RANK.EQ関数は、指定した数値が比較範囲の中で何位になるかを求める関数です。
元の並び順を変えずに順位を表示し、数値を変更したときに順位も更新できます。
大きい数値を1位にする
→ 順序に0を指定する
小さい数値を1位にする
→ 順序に1を指定する
数式をコピーする
→ 比較範囲を絶対参照で固定する
同じ数値がある
→ 同順位になり、その後の順位が飛ぶ
古いExcelを使用する
→ RANK関数で同じ順位を求められる
同じ数値が複数ある場合は同順位になり、「1位・2位・2位・4位」のように次の順位が飛びます。
順位が飛んでいても計算ミスではないため、同順位の件数を確認してください。

順位を見るだけなら並べ替え、元の並び順を変えずに順位を残すならRANK.EQ関数を使えばよいんですね!
RANK.EQ関数を正しくコピーするには、セル参照と絶対参照の違いを理解することも大切です。
関数を基本から順番に学びたい場合は、Level3攻略フローから進めてください。


コメント