RANK.EQ関数の使い方|順位を求める・同じ順位・小さい順・グループ内の順位

RANK.EQ関数の使い方|順位を求める(RANK関数との違い)

エクセルで、数値が範囲の中で何位かを求めるには RANK.EQ関数を使います。たとえば山田さんの売上 120 は、=RANK.EQ(C3,$C$3:$C$10) で 4 位と分かります。

同じ値があると同じ順位になり、次の順位は飛びます。この記事では、RANK.EQ関数の基本、同じ値のときの順位、RANK.AVG関数との違い、小さい順の順位、部署の中での順位、同じ順位を作らない方法、空欄の扱いまでを、1つの表で説明します。古い RANK関数は RANK.EQ関数と同じ結果です。下の練習ツールで、売上を書き換えて順位の変わり方を試せます。

目次

RANK.EQ関数の書き方

RANK.EQ関数の構文
数式=RANK.EQ(数値,参照,[順序])
ひとことで順位を求める
数値
順位を調べる値です
参照
データの範囲です
[順序]
順序(0=大きい順、1=小さい順)です
引数入れるものポイント
数値順位を知りたい値(セル)C3 など
参照順位を比べる範囲下にコピーするので $C$3:$C$10 と絶対参照にします。
順序0(省略)=大きい順、1=小さい順点数・売上は省略、タイムなどは 1 にします。

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

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

RANK.EQ関数の使い方|やりたいこと別の式

やりたいこと式(例)結果
大きい順の順位=RANK.EQ(C3,$C$3:$C$10)4
同じ値の順位=RANK.EQ(C9,$C$3:$C$10)2
同じ値を平均の順位に=RANK.AVG(C5,$C$3:$C$10)2.5
小さい順の順位=RANK.EQ(C7,$C$3:$C$10,1)1
グループの中での順位=COUNTIFS($B$3:$B$10,B5,$C$3:$C$10,”>”&C5)+12
同じ順位を作らない=RANK.EQ(C9,$C$3:$C$10)+COUNTIF($C$3:C9,C9)-13
エクセルのRANK.EQ関数で売上の順位を求めた表
エクセルのRANK.EQ関数で売上の順位を求めた表

大きい順の順位を求める

手順:F3 に RANK.EQ の式を入れて Enter

山田さんの売上(120)が、8 人の中で何位かを求めます。 F3 に次の式を入力して、Enter キーを押します❶。

F3 に入れる式
=RANK.EQ(C3,$C$3:$C$10)
C3 数値(山田さん)$C$3:$C$10 参照(全員の売上)
ひとことで山田さんの売上が、全員の売上の中で大きいほうから何位かを求める
式を分けて読むと(色は画像の枠と同じ)
数値C3
誰の順位?
→ 山田さんの売上(120)
参照$C$3:$C$10
何の中での順位?
→ 全員の売上($ で固定)
自分の表で使うときは
オレンジに順位を知りたいセル、青に全員の範囲(下へコピーするので $ で固定)を入れます。例:点数(D 列)の順位を下へコピー=RANK.EQ(D2,$D$2:$D$40)
  • 3つ目に 1 を入れると、小さい順の順位になります。
エクセルのRANK.EQ関数で順位を求める式と、順位を調べる値と全員の範囲を色分けした画面
エクセルのRANK.EQ関数で順位を求める式と、順位を調べる値と全員の範囲を色分けした画面

確認:120 は 4 位だった

エクセルのRANK.EQ関数で山田さんの売上120が4位になったことを示した画面
エクセルのRANK.EQ関数で山田さんの売上120が4位になったことを示した画面

答えは 4 になりました❷。式は、次の順に計算しています。

  1. 120より大きい売上を数える
    ⇒ 200・150・150 の3つ
  2. 3つの次なので
    ⇒ 4 位
ヒント:同じ値は同じ順位
150 の鈴木さんと渡辺さんは、どちらも 2 位になります(次は4位)。

同じ値は同じ順位になる

RANK.EQ関数の式
数式=RANK.EQ(C9,$C$3:$C$10)
ひとことで順位を求める
C9
順位を調べる値です
$C$3:$C$10
データの範囲です

鈴木さんと渡辺さんはどちらも 150 なので、どちらも 2 位です。次の山田さんは3位ではなく4位になります。

同じ値を平均の順位にする(RANK.AVG)

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

2位と3位を分け合うので、(2+3)÷2 で 2.5 位です。統計で順位を使うときに使われます。

小さい順の順位を求める

3つ目の引数に 1 を入れると、小さいほうが1位になります。

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

田中さんの 60 はいちばん小さいので 1 位です。

部署(グループ)の中での順位を求める

RANK.EQ関数には条件を付けられないので、COUNTIFS関数で「同じ部署で自分より大きい人の数+1」を数えます。

=COUNTIFS($B$3:$B$10,B5,$C$3:$C$10,">"&C5)+1

営業の売上は 120・150・60・200 で、150 より大きいのは 200 だけなので、鈴木さんは営業の中で 2 位です(COUNTIFS関数の使い方)。

同じ順位を作らない(上の行を先にする)

同じ値のとき、上の行の人を先にして順位を1つずつずらします。COUNTIF関数の範囲を $C$3:C9 のように自分の行まで広げるのがポイントです。

=RANK.EQ(C9,$C$3:$C$10)+COUNTIF($C$3:C9,C9)-1

渡辺さんより上に 150 がもう1つ(鈴木さん)あるので、2+2−1 で 3 位です。鈴木さんの行で同じ式を使うと 2 位のままです。

空欄の人は順位を表示しない

空欄のセルを RANK.EQ関数に渡すと #N/A エラーになります。IF関数で空欄のときは何も表示しないようにします。

IF関数の式
数式=IF(C8="","",RANK.EQ(C8,$C$3:$C$10))
ひとことで条件で結果を切り替える
C8=""
条件です
""
真の場合です
RANK.EQ(C8,$C$3:$C$10)
偽の場合です

伊藤さんの売上は空欄なので、結果は空白です。

RANK.EQ関数がうまくいかないときの確認表

症状考えられる原因対処
コピーすると順位がおかしい範囲が相対参照でずれた$C$3:$C$10 のように絶対参照にする。
「#N/A」になる数値が空欄・文字、または範囲に入っていないIF関数で空欄を除く。範囲を確かめる。
同じ順位が出る同じ値は同じ順位になるCOUNTIF関数を足して順位をずらす。
小さいほうを1位にしたい順序を省略すると大きい順3つ目の引数に 1 を入れる。

RANK.EQ関数のよくある質問

RANK関数との違いは?

RANK関数は古いバージョンとの互換用で、RANK.EQ関数と同じ結果になります。新しく作るときは RANK.EQ関数を使います。

順位から名前を出すには?

LARGE関数と INDEX・MATCH関数を組み合わせます(LARGE関数の使い方)。

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

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

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

この記事を書いた人

目次