スプレッドシートのRANK関数の使い方|順位を自動で付ける方法

スポンサーリンク

スプレッドシートのRANK関数の使い方|順位を自動で付ける方法

「スプレッドシートの売上データに順位を付けたいけど、手作業で並べ替えるのは面倒」。そんな場面はありませんか?

データが更新されるたびに順位を付け直すのは大変ですよね。ミスも起きやすくなります。

RANK関数を使えば、データの順位を自動で計算できます。この記事では基本の書き方から降順・昇順の切り替え、同順位の扱いまで丁寧に解説します。

RANK関数とは?値の順位を返す関数

RANK関数は、指定した値がデータの中で何番目かを返す関数です。読み方は「ランク」で、英語の「Rank(順位)」がそのまま名前になっています。

たとえば売上データの中で「85万円は何位?」と聞きたいときに使います。答えを数値(1位、2位…)で返してくれる関数です。

NOTE

スプレッドシートの RANKRANK.EQ と同じ動作をします。Excelとの互換性も問題ありません。

RANK関数の書き方(構文と引数)

基本構文

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

引数の説明

引数必須/任意説明
必須順位を調べたいセル
範囲必須順位を比較するデータ範囲
順序任意0=降順(大きい順)、1=昇順(小さい順)。省略すると0(降順)

第3引数の「順序」がポイントです。省略すると降順(大きい値が1位)になります。

基本的な使い方

以下の売上データでRANK関数を使ってみましょう。

 A列(担当者)B列(売上)C列(順位)
2行目田中85=RANK(B2,$B$2:$B$8)
3行目鈴木92 
4行目佐藤78 
5行目山田95 
6行目高橋88 
7行目伊藤72 
8行目渡辺85 

C2セルに =RANK(B2,$B$2:$B$8) と入力します。

ここで重要なのは、範囲を絶対参照($B$2:$B$8)にすることです。数式を下にコピーしても範囲がずれません。

結果は以下のようになります。

担当者売上順位
田中854
鈴木922
佐藤786
山田951
高橋883
伊藤727
渡辺854

田中と渡辺はどちらも85で同じ4位になっています。同順位の扱いについては後ほど詳しく説明します。

降順と昇順の切り替え

第3引数で順位の方向を変えられます。

=RANK(B2,$B$2:$B$8, 0)   → 降順(大きい値が1位)
=RANK(B2,$B$2:$B$8, 1)   → 昇順(小さい値が1位)
担当者売上降順(0)昇順(1)
田中8543
鈴木9226
山田9517
伊藤7271

売上ランキングなら降順(0)、コスト順位なら昇順(1)が自然です。用途に応じて使い分けてください。

実践的な使い方・応用例

同順位がある場合の挙動と対処法

RANK関数で同じ値がある場合、上位の順位が付きます。そして次の順位が飛びます。

例: 4位が2人いると「4, 4, 6」となり、5位がスキップされます。

これで問題ないケースもあります。ただし連番(4, 5, 6)で付けたい場合はCOUNTIF関数を組み合わせます。

=RANK(B2,$B$2:$B$8)+COUNTIF($B$2:B2,B2)-1

この数式のしくみは以下のとおりです。

  • RANK(B2,$B$2:$B$8): 通常の順位を求める
  • COUNTIF($B$2:B2,B2): 現在行までに同じ値が何個あるかを数える
  • -1: 初回(1個目)は調整しない

2つ目の同じ値には+1されるため、連番になります。

テスト成績の順位表を作る

テストの点数に降順で順位を付ける例です。

生徒名点数順位
A78=RANK(B2,$B$2:$B$6) → 3
B92→ 1
C65→ 5
D85→ 2
E72→ 4

最高点が1位になる降順が自然な場面です。第3引数は省略(または0)で使います。

納期が早い順にランキングを付ける

日付データに昇順で順位を付ける例です。

タスク納期優先順位
企画書3/25=RANK(B2,$B$2:$B$5,1) → 1
報告書4/10→ 3
見積書3/28→ 2
資料4/15→ 4

日付は内部的に数値として扱われます。昇順(1)にすれば、早い日付ほど小さい順位になります。

よくあるエラーと対処法

#N/Aエラー

「値」が「範囲」に含まれていない場合に発生します。

よくある原因と対策:

原因対策
値のセルが範囲外範囲を正しく指定し直す
値が文字列型の数字VALUE関数で数値に変換する
範囲にテキストが混在数値だけの範囲を指定する

特に注意したいのが「文字列型の数字」です。見た目は数字でも、文字列として入力されている場合があります。=VALUE(A1) で数値に変換してからRANKに渡すと解決します。

TIP

セルを選択して左揃えになっている数字は文字列型の可能性があります。数値は右揃えが初期設定です。

LARGE・SMALL関数との違い・使い分け

RANK関数とLARGE関数SMALL関数は混同しやすいですが、操作の方向が逆です。

関数操作の方向使う場面
RANK値 → 順位「85万円は何位?」
LARGE順位 → 値「2位の売上はいくら?」
SMALL順位 → 値(小さい方)「下から2番目はいくら?」
=RANK(85, B2:B8)     → 4(85は4番目に大きい)
=LARGE(B2:B8, 4)     → 85(4番目に大きい値)

RANKとLARGEは逆方向の関係です。「順位を知りたい」ならRANK、「値を取り出したい」ならLARGE/SMALLを使ってください。

まとめ

RANK関数は「データの中で何番目か」を返す関数です。売上ランキングやテスト順位など、実務でよく使う場面に対応できます。

この記事のポイント

  • 構文は =RANK(値, 範囲, [順序]) の3引数
  • 第3引数: 0(省略可)=降順、1=昇順
  • 範囲は絶対参照($)で固定するのを忘れずに
  • 同順位があると次の順位が飛ぶ(4, 4, 6)
  • 連番にしたいときはCOUNTIF関数と組み合わせる
  • LARGE/SMALLは「順位→値」、RANKは「値→順位」の逆方向

次のステップ:関連する集計関数

RANK関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データの分析力がぐっと上がりますよ。

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