RANK関数の使い方|売上や点数に順位を付ける
※写真はイメージです
書き方はこれだけ
=RANK.EQ(順位を知りたい数, 比べる範囲, [順序])範囲の中で何番目に大きいか(小さいか)を出します。3つ目を省くか0で大きい順、1で小さい順(タイムや価格の安い順)です。つまずくのは $ で、範囲は下にコピーするので $で固定しておかないと順位がずれます。
この図の表をExcelファイルでダウンロード(問題と答えのシートつき)
RANK・RANK.EQ・RANK.AVGの違い
| 関数 | 同じ数があるとき | 例(640が2つで4位・5位) |
|---|---|---|
| RANK.EQ | 同じ順位(上の順位) | 4位・4位 |
| RANK.AVG | 順位の平均 | 4.5位・4.5位 |
| RANK | RANK.EQと同じ(古い関数) | 4位・4位 |
小さい順に順位を付ける
| やりたいこと | 式 |
|---|---|
| タイムの速い順(小さいほど上位) | =RANK.EQ(B2,$B$2:$B$6,1) |
| 上位3位だけ「表彰」と出す | =IF(RANK.EQ(B2,$B$2:$B$6)<=3,"表彰","") |
| 1位の値そのもの | =MAX(B2:B6) / 2位は =LARGE(B2:B6,2) |
うまくいかないとき
1下へコピーしたら順位がおかしい
入れた範囲
B2:B6≠
正しい範囲
$B$2:$B$6範囲が1行ずつずれています。
直し方範囲に $ を付けて固定します。
2順位が逆になる
3つ目の順序が逆です。
直し方大きい順は0(省略)、小さい順は1です。
サンプルファイルで試す
黄色のセルにRANK.EQの式を入れて、「答え」のシートと比べてください。
よくある質問
同じ点数のときに順位を分けたいです。
=RANK.EQ(B2,$B$2:$B$6)+COUNTIF($B$2:B2,B2)-1 のように、上から数えた同じ値の数を足すと、上の行から順に番号が付きます。
RANKとRANK.EQはどちらを使えばいいですか?
結果は同じです。新しいExcelではRANK.EQが推奨されています。
Googleスプレッドシートでも使えますか?
はい。RANK・RANK.EQ・RANK.AVGが使えます。
一緒に覚えたい関数・操作
このページについて
操作の説明は Microsoft 365 の日本語版Excel(Windows)に合わせています。図はこのサイトで作ったもので、表の会社名・商品名・人名は架空です。運営者情報