エクセルで順位を付ける方法|RANK.EQ・同順位・昇順・上位の取り出し

エクセルで順位を付ける方法|RANK.EQ・同順位・昇順・上位の取り出し

エクセルで、得点や売上に、順位を付けるには、RANK.EQ関数を使います。得点が高い順の順位なら、=RANK.EQ(B3,$B$3:$B$8,0) です。小さい順にしたいときは、最後の「0」を「1」にします。

この記事では、順位の付け方、小さい順の順位、同順位を避ける方法、平均順位、n番目に大きい値、1位の氏名の取り出し方を、1つの表を使って説明します。下の練習ツールで、得点を書き換えて、順位の変わり方を試せます。

目次

エクセルで順位を付ける|やりたいこと別の式

やりたいこと式(例)ポイント
得点が高い順に、順位を付ける=RANK.EQ(B3,$B$3:$B$8,0)最後の「0」は、降順(大きい順)です。
得点が低い順に、順位を付ける=RANK.EQ(B3,$B$3:$B$8,1)最後の「1」は、昇順(小さい順)です。
同順位を避けて、順位を付ける=RANK.EQ(B3,$B$3:$B$8)+COUNTIF($B$3:B3,B3)-1同じ得点でも、上の行が先になります。
同順位の平均を、順位にする=RANK.AVG(B3,$B$3:$B$8)1位が2人なら、どちらも1.5位です。
n番目に大きい値を求める=LARGE($B$3:$B$8,3)3番目に大きい得点が、求められます。
いちばん小さい値を求める=SMALL($B$3:$B$8,1)n番目に小さい値は、SMALL関数です。
1位の氏名を取り出す=INDEX($A$3:$A$8,MATCH(MAX($B$3:$B$8),$B$3:$B$8,0))最大値の位置を探して、氏名を返します。
ポイントポイント:順位の範囲($B$3:$B$8)には、必ず「$」を付けて、固定します。固定しないと、式を下にコピーしたときに、範囲がずれて、順位が狂います。

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

RANK.EQ関数で順位を付ける(大きい順)

得点が高い人を、1位にするには、RANK.EQ関数の最後の指定を、「0」にします。

1
結果を出したいセル(C3)を選びます。
2
「=RANK.EQ(」と入力します。
3
順位を付けたい得点のセル(B3)をクリックして、「,」を入力します。
4
得点の範囲(B3:B8)を選んで、F4キーで「$」を付けます。
5
「,0)」と入力して、Enter キーを押し、下の行まで、コピーします。
RANK.EQ関数の式
数式=RANK.EQ(B3,$B$3:$B$8,0)
ひとことで順位を求める
B3
順位を調べる値です
$B$3:$B$8
データの範囲です
0
順序(0=大きい順、1=小さい順)です
エクセルで順位を付けた表(得点、順位、昇順、重複なし、平均順位、各式の結果)
エクセルで順位を付けた表(得点、順位、昇順、重複なし、平均順位、各式の結果)

梅の得点は85点で、結果は 3 です。92点の桜と竹は、どちらも 1、85点の梅と菊は、どちらも3位で、次の78点の松は、5 になります(2人が同順位のとき、次の順位は飛びます)。

小さい順に順位を付ける(昇順)

タイムのように、小さい方が良いときは、最後の指定を「1」にします。

RANK.EQ関数の式
数式=RANK.EQ(B3,$B$3:$B$8,1)
ひとことで順位を求める
B3
順位を調べる値です
$B$3:$B$8
データの範囲です
1
順序(0=大きい順、1=小さい順)です

梅の85点は、小さい方から数えて3番目なので、結果は 3 です。いちばん小さい66点の楓が、1 になります。

同順位を避けて順位を付ける

同じ得点でも、順位を別々にしたいときは、COUNTIF関数で、上の行にある同じ得点の数を、足します。

=RANK.EQ(B3,$B$3:$B$8)+COUNTIF($B$3:B3,B3)-1

92点の桜は、1、同じ92点の竹は、上に同じ得点が1人いるので、2 になります。COUNTIFの範囲は、先頭だけを「$」で固定して、下にコピーすると、範囲が1行ずつ広がります。

同順位は平均順位にする(RANK.AVG)

同順位のとき、平均の順位にするには、RANK.AVG関数を使います。

RANK.AVG関数の式
数式=RANK.AVG(B3,$B$3:$B$8)
ひとことで順位を求める(同順位は平均)
B3
順位を調べる値です
$B$3:$B$8
データの範囲です

92点の桜と竹は、1位と2位の平均で、結果は 1.5 です。85点の梅と菊は、3.5 になります。順位の細かい違いは、RANK.AVG関数の使い方を参照してください。

n番目の値と、1位の氏名を求める(LARGE・SMALL・INDEX)

3番目に大きい得点は、LARGE関数で求めます。いちばん小さい得点は、SMALL関数です。

LARGE関数の式
数式=LARGE($B$3:$B$8,3)
ひとことで大きいほうから数えた値を求める
$B$3:$B$8
データの範囲です
3
順位です

大きい順に、92、92、85、85、78、66なので、結果は 85 です。1位の氏名を取り出すには、MAX関数で最大値を求めて、MATCH関数で位置を探し、INDEX関数で氏名を返します。

INDEX関数の式
数式=INDEX($A$3:$A$8,MATCH(MAX($B$3:$B$8),$B$3:$B$8,0))
ひとことで位置を指定して値を返す
$A$3:$A$8
範囲です
MATCH(MAX($B$3:$B$8),$B$3:$B$8,0)
行番号です

結果は 桜 です。同点のときは、上にある人が、返されます。3位以内の人数は、順位の列を使って、=COUNTIF($C$3:$C$8,"<=3") で求められて、結果は 4 です。上位の合計は、上位3件の合計を求める方法を参照してください。

順位がおかしいときの確認表

症状考えられる原因対処
順位が、下の行でずれる範囲に、「$」を付けていない範囲を、$B$3:$B$8 のように固定する。
「#N/A」と表示される順位を付けたい値が、範囲に入っていない範囲に、そのセルを含める。
同じ得点で、同じ順位になるRANK.EQ関数の仕様COUNTIF関数で、同順位を避ける。
順位が、逆になる最後の指定が、逆になっている大きい順は「0」、小さい順は「1」にする。
空白のセルの順位が出る空白も、計算の対象になっているIF関数で、空白のときは、表示しない。
文字の得点が、無視される数値ではなく、文字列になっている数値に直してから、順位を付ける。
値を変えても、順位が変わらない計算方法が「手動」になっている「数式」タブの「計算方法の設定」を「自動」にする。

順位付けのよくある質問

RANK関数と、RANK.EQ関数の違いは?

結果は同じです。RANK.EQ関数は、新しい名前で、古いRANK関数の代わりに使えます。

得点の高い順に、並べ替えるには?

順位の列を付けたあとで、「データ」タブの「並べ替え」で、順位の昇順にします。並べ替えの基本は、最大・最小・順位のまとめも参考になります。

上位3人だけを、取り出すには?

LARGE関数で、1番目から3番目の得点を求めて、INDEX関数とMATCH関数で、氏名を返します。

あわせて読みたい:順位の関連記事

練習用ファイル:練習用Excelファイル(.xlsx・無料)

ランダムな数字や抽選のやり方は、エクセルでランダムな数字を作る方法もあわせてご覧ください。

偏差値の求め方を、判定や人数の集計まで確認したいときは、エクセルで偏差値を求める方法もあわせてご覧ください。

集計した結果を、グラフにして見せたいときは、エクセルでグラフを作る方法もあわせてご覧ください。

ボタン操作で並べ替えたいときは、エクセルの並べ替えのやり方もあわせてご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次