エクセルで順位をつける方法|RANK.EQ関数の使い方と、同じ点数のときの順位の決め方

順位をつける方法|並べ替えずに順位がわかる 集計・条件関数

テストの点数や売上の一覧を、高い順に並べて、順位を手で書き込んでいませんか。RANK.EQ(ランク・イコール)関数を使えば、並べ替えをしなくても、順位を自動でつけられます。

この記事では、RANK.EQ関数の基本の書き方と、同じ点数があるときの扱い方を、図解で説明します。

RANK.EQ関数の基本の書き方

=RANK.EQ(数値,範囲,順序)
  • 数値:順位を知りたい数字(セル)
  • 範囲:比べる相手になる、数字全体のセル範囲
  • 順序:0(または省略)なら、大きい順(降順)。1なら、小さい順(昇順)
RANK.EQ関数で、B2の点数が、B2からB6の中で何位かを求める式を示した図
  1. 順位を表示したいセル(C2)を選び「=RANK.EQ(」と入力する
  2. 順位を知りたい点数のセル(B2)を選び、カンマを入れる
  3. 比べる範囲(B2:B6)をドラッグして選び、F4 キーを押して「$B$2:$B$6」にする
  4. カンマを入れて「0」を入力し、「)」で閉じて Enter を押す
  5. C2を選び、右下の■を下へドラッグしてコピーする

範囲に「$」を付ける理由

範囲を「B2:B6」のままコピーすると、下のセルに行くにつれて、範囲もずれてしまいます。「$B$2:$B$6」のように、「$」を付けて固定すると、どのセルにコピーしても、同じ範囲で順位をつけられます。

  • F4 キーを1回押すと、「$B$2:$B$6」(行も列も固定)になる
  • Macでは、Command + T で切り替えられる
  • 数値のセル(B2)は、固定しない

小さい順に順位をつけたいとき

タイムや欠点の数など、小さいほうが上位になる場合は、3つ目の引数を「1」にします。

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

大きい順なら「0」、小さい順なら「1」と覚えておけば、迷いません。

同じ点数のときの順位

上の図では、佐藤さんと高橋さんが、どちらも95点です。RANK.EQ関数は、同じ数値があると、どちらも同じ順位にします。この場合は、2人とも「1位」になり、次の人は「3位」になります(2位は空きます)。

同じ点数でも、順位を分けたいときは、COUNTIF関数を足します。

=RANK.EQ(B2,$B$2:$B$6)+COUNTIF($B$2:B2,B2)-1
RANK.EQ関数とCOUNTIF関数を組み合わせて、同じ点数でも順位が重ならないようにする式を示した図

この式では、COUNTIF関数が、「上から数えて、同じ点数が何人目か」を数えています。1人目なら「+1-1」で変わらず、2人目なら「+2-1」で、順位が1つ下がります。表の上にある人が先の順位になります。

並べ替えなしで、順位の順に表示したいとき

順位の列ができたら、「データ」タブの「並べ替え」で、順位の列を基準に並べ替えられます。ただし、数式が入っている表を並べ替えると、式の参照がずれることがあります。元のデータをコピーして、別のシートで並べ替えると、安全です。

RANK関数との違い

昔のExcelでは、「RANK」という名前の関数が使われていました。現在も使えますが、互換性のために残されている関数で、新しい書き方は「RANK.EQ」です。同じ順位がある場合に、平均の順位を返す「RANK.AVG」という関数もあります。

関数同じ数値があるとき使いどころ
RANK.EQ同じ順位にする(次の順位が空く)一般的な順位づけ
RANK.AVG平均の順位にする(1位と2位なら1.5位)統計的な処理
RANKRANK.EQと同じ古いExcelとの互換用

もう一歩進める|順位の応用的な使い方

RANK.EQ関数の基本が分かったら、より実用的な順位のつけ方に進みましょう。

グループごとの順位をつける

部署ごとなど、グループ内で順位をつけたいときは、COUNTIFS関数を使います。「同じグループで、自分より点数が高い人の数」に1を足すと、グループ内の順位になります。

=COUNTIFS($A$2:$A$100,A2,$B$2:$B$100,">"&B2)+1

同点を平均の順位で表示する

RANK.AVG関数を使うと、同じ点数のときに、順位の平均が表示されます。たとえば、2位が2人いるときは、どちらも「2.5位」となります。

上位だけ目立たせる

順位の列に、条件付き書式で「3以下」を設定すると、上位3位だけに色をつけられます。順位表を見やすくしたいときに便利です。

「1位」と単位をつけて表示する

順位に「位」をつけたいときは、表示形式を変えます。セルの書式設定の「ユーザー定義」で、「0"位"」と指定すると、「1位」のように表示されます。元の値は数字のままなので、計算にも使えます。

順位は、元の点数が変わると自動で更新されます。点数を書き換えたら、順位も自動で入れ替わります。

順位表を見やすく仕上げる

順位をつけたあとは、表の見た目を整えると、資料として使いやすくなります。順位の列を左端に置くと、誰が何位かがすぐに分かります。

  • 順位の列を基準に、昇順で並べ替えると、順位表として表示できる
  • 並べ替えをしても、RANK.EQ関数の式は、範囲を絶対参照にしておけば崩れない
  • 同点が多いときは、補助の条件(たとえば、別の点数)を使って、順位を細かく決める方法もある

まとめ

  • 順位は「=RANK.EQ(数値,範囲,順序)」で求める
  • 範囲は、$を付けて固定する(F4キー)
  • 大きい順は「0」、小さい順は「1」
  • 同じ点数で順位を分けるなら、COUNTIF関数を足す
  • 並べ替えをしなくても、順位の列だけで、順位がわかる

同点の扱いを先に決めておくと、結果を見て迷わずに済みます。

コメント

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