Excel

【Excel】RANK関数の使い方と順位付けの基本

・売上の多い順に順位をつけたい

・テストの点数で何位かを自動で出したい」

Excelでこういった「順位付け」をするとき、データを並べ替えて手動で番号を振っていませんか?
並べ替えずに順位を表示できるのが RANK関数 です。
元データの並び順を変えずに順位が付けられるので、並べ替えが不要な集計表や成績管理などで特に重宝します。

RANK関数の基本構文

=RANK(数値, 参照, [順序])
引数必須/任意内容
数値必須順位を調べたいセル
参照必須順位を比較する範囲全体
順序任意0または省略:降順(大きい順)/1:昇順(小さい順)

「この数値は、この範囲の中で何位か?」を返す関数です。

基本的な使い方

例①:売上の高い順に順位を付ける(降順)

B列に売上が入っていて、C列に順位を表示したい場合:

=RANK(B4, $B$4:$B$13, 0)

第3引数の 0 は「降順(大きい順)」です。省略しても同じ結果になります。

ポイントは参照範囲を絶対参照($B$4:$B$13)にすること。
数式を下の行にコピーしても、比較する範囲がズレなくなります。

例②:タイムの速い順に順位を付ける(昇順)

マラソンのタイムや作業時間など、小さい値が良い場合は第3引数を 1 にします。

=RANK(B4, $B$4:$B$11, 1)

同順位(同じ値)の扱い

RANK関数は同じ値があった場合、同じ順位を返し、次の順位を飛ばします。

担当者売上RANK結果
田中150,0001位
鈴木120,0002位
佐藤120,0002位(同順位)
山本100,0004位(3位は飛ばされる)

これはExcelの仕様であり、RANK関数の標準的な動作です。

RANK関数とRANK.EQ・RANK.AVGの違い

Excel 2010以降では、RANKと同じ機能を持つ RANK.EQ と、同順位を平均順位で返す RANK.AVG が追加されています。

関数同順位のときの動作使いどき
RANK同じ順位を返す(旧バージョン互換)どのExcelでも動かしたいとき
RANK.EQ同じ順位を返す(RANKと同じ動作)Excel 2010以降で書き方を統一したいとき
RANK.AVG同順位の平均順位を返す(2位と2位なら2.5位)統計処理など、平均順位が必要なとき

実務ではほとんどの場合 RANK または RANK.EQ で十分です。

よく使う実務パターン

パターン①:順位を別列に表示する

C2セルに入力して下にコピー:
=RANK(B4, $B$4:$B$13, 0)

パターン②:「1位」「2位」と単位付きで表示する

=RANK(B2, $B$2:$B$11, 0)&"位"

パターン③:上位3位以内なら「★」を表示する

IF関数と組み合わせることで、上位入賞者を自動でハイライトできます。

=IF(RANK(B2, $B$2:$B$11, 0)<=3, "★", "")

よくあるミスと対処法

症状原因対処法
コピーすると順位がおかしくなる参照範囲が相対参照になっている$B$2:$B$11のように絶対参照にする
全員が1位になる数値と参照が同じセルを指している数値は1セル、参照は範囲全体を指定する
昇順・降順が逆になる第3引数の指定が逆大きい順は0、小さい順は1
#VALUE!エラーが出る参照範囲に文字列が混在している数値のみの列を参照範囲に指定する

まとめ

  • RANK関数は元データを並べ替えずに順位を付けられる
  • 構文は =RANK(数値, 参照, 順序) の3引数
  • 参照範囲は必ず絶対参照($付き)にしてコピー時のズレを防ぐ
  • 降順(大→小)は 0 または省略、昇順(小→大)は 1
  • 同じ値は同順位になり、次の順位は飛ばされる
  • IF関数と組み合わせると上位N位だけをハイライトできる

一度覚えてしまえば、売上ランキングや成績管理など様々な場面で使い回せる便利な関数です。
まずは基本形から試してみてください!

  • この記事を書いた人

いしはらゆうと


・瞬習エクセルアカデミー 代表
・2025年:朝日新聞「マイベストプロ」の取材を受ける
・2025年:「マイナビニュース」インタビュー登壇
・「実務直結型Excel講師」として登壇・研修経験多数
・企業の新人教育や「実務に直結する」と評判の講座を数多く実施
・Excelマクロを活用し、業務効率化ツールを多数開発
国家資格 応用情報技術者 保有
現場ニーズに即した「即戦力スキル」の習得支援を専門とする
「実務に必要なExcelの基本スキルを最短で習得できる」ノウハウを提供

-Excel
-,