Excel関数 逆引き集 | 同順位処理 → RANK.EQ

Excel
スポンサーリンク

概要

「同順位処理」は、同じ点数・同じ売上があったときに“どう順位を付けるか”をコントロールする考え方です。
Excel の RANK.EQ は、「同じ値には同じ順位を付ける(=同順位)」という動きをする関数で、まさに“同順位処理”の標準ツールと言えます。
ここでは、RANK.EQ の基本から、「同順位が出たときに順位がどう飛ぶのか」「コードテンプレート」「練習問題」まで、初心者向けにかみ砕いて解説します。


RANK.EQ の基本

RANK.EQ の書式と意味

RANK.EQ の基本形は次の通りです。

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

意味は、「範囲の中で、その数値が何位か」を返す関数です。
順序を省略するか 0 を指定すると「大きい方が 1 位」(降順)、1 を指定すると「小さい方が 1 位」(昇順)になります。

売上ランキングやテストの点数など、「大きいほど上位」のときは、順序は省略(または 0)で OK です。

=RANK.EQ(対象セル, 比較する範囲)

と書けば、「そのセルの値が、範囲の中で何位か」が返ってきます。


同順位処理としての RANK.EQ の動き

同じ値は“同じ順位”になる

RANK.EQ の一番のポイントは、「同じ値には同じ順位を付ける」というところです。
たとえば、次のような点数があったとします。

80
70
70
60

この 4 つを対象に、RANK.EQ で「大きい方が 1 位」の順位を付けると、こうなります。

80 → 1 位
70 → 2 位
70 → 2 位
60 → 4 位

70 が 2 つあるので、どちらも「2 位」になります。
その結果、「3 位」は飛んで「4 位」になる、というのが RANK.EQ の“同順位処理”のルールです。

「同順位ありの競技順位」のイメージ

この動きは、いわゆる「競技の順位」に近いです。
1 位、2 位タイ、2 位タイ、4 位…という付き方ですね。

「同じ点数なら同じ順位でいい」「その代わり、次の順位は飛んでも構わない」というときに、RANK.EQ は素直に使えます。


売上表での同順位処理テンプレート

売上ランキング+同順位処理の基本形

次のような表をイメージしてください。

A 列:担当者名
B 列:売上金額

ここから、C 列に「売上順位(同順位あり)」を出します。
2 行目が最初のデータだとすると、C2 に次のように書きます。

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

これで、「B2 の売上が、B2:B10 の中で何位か」が求まります。
同じ売上があれば、同じ順位になります。

この式を C3、C4…と下にコピーすれば、全員分の「同順位処理済みランキング」が完成します。

昇順での同順位処理(小さい方が 1 位)

在庫の少なさランキングや、処理時間の短さランキングなど、「小さい方が良い」場合は、順序に 1 を指定します。

=RANK.EQ(B2, $B$2:$B$10, 1)

これでも同じく、「同じ値は同じ順位」「次の順位は飛ぶ」という同順位処理になります。


同順位を“連番”にしたいときとの違い

RANK.EQ は「同順位=同じ数字」で固定

RANK.EQ は、「同じ値には同じ順位を付ける」ことに特化しています。
つまり、「同順位でも 1,2,3,4…と連番にしたい」というニーズには、そのままでは対応しません。

たとえば、点数が 80, 70, 70, 60 のとき、
「80→1 位、70→2 位、70→3 位、60→4 位」のように“連番”にしたい場合は、RANK.EQ だけではなく、COUNTIF などを組み合わせた工夫が必要になります。

ここでは、「同順位は同じ数字でいい」という前提で、RANK.EQ を“同順位処理の標準形”として押さえておきましょう。


コードテンプレート集

売上の同順位ランキング(大きい方が 1 位)

売上が B2:B10 にある場合、C2 に書く式はこれです。

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

あとは C2 を下にコピーするだけで、同順位処理された売上ランキングが出ます。

小さい値ほど上位にする同順位ランキング

小さい方が 1 位になるようにしたい場合は、順序に 1 を指定します。

=RANK.EQ(B2, $B$2:$B$10, 1)

これも同じく、同じ値には同じ順位が付きます。


例題

問題1

B2:B5 に「80, 70, 70, 60」という点数が入っています。
C2 に =RANK.EQ(B2,$B$2:$B$5) と入力し、C5 までコピーしたとき、C2〜C5 にはそれぞれどんな順位が表示されるか答えてください。
また、その結果から「RANK.EQ が同順位をどう扱っているか」を言葉で説明してください。

問題2

A2:A6 に担当者名、B2:B6 に売上金額が入っています。
C 列に「売上ランキング(同順位あり・大きい方が 1 位)」を表示したいとき、C2 に書くべき式を答えてください。
そのうえで、その式を C3〜C6 にコピーすると、どのように同順位が処理されるか説明してください。

問題3

在庫数が B2:B10 に入っており、「在庫が少ないほど上位」というランキングを作りたいとします。
同じ在庫数なら同順位で構わない前提で、C2 に書くべき RANK.EQ の式を答えてください。
また、その式が「小さい値ほど 1 位に近づく」理由を、自分の言葉で説明してください。

問題4

RANK.EQ は「同じ値には同じ順位を付ける」ため、
80, 70, 70, 60 のときに「1,2,2,4」という順位になります。
もしあなたが「1,2,3,4」と“連番”で順位を振りたい場合、RANK.EQ だけでは足りません。
この違いを踏まえて、「RANK.EQ が向いている場面」と「向いていない場面」を、自分の言葉で整理してみてください。

問題5

次の 2 つの式は、どちらも B2 の値を使っています。

=RANK.EQ(B2, $B$2:$B$10)
=RANK.EQ(B2, $B$2:$B$10, 1)

それぞれが「どんな基準で順位を付けているか」を説明し、
特に「同順位処理」という観点から見たときに、両者の共通点と違いを整理してみてください。

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