営業成績のランキング表や、試験・研修の点数から順位を出す表は、経理・総務・営業事務を問わず社内で頻繁に作られます。こうした「数値の大小から順位を求める」作業を1本の数式で済ませてくれるのがRANK関数、そしてその後継であるRANK.EQ関数です。書き方自体はシンプルですが、下の行にコピーしたときに参照範囲がずれてしまうミスや、同点者が出たときに順位が予想外の飛び方をする挙動など、初めて使う人が戸惑いやすいポイントがいくつかあります。この記事では、営業事務・総務の実務シーンに沿って、RANK・RANK.EQの使い方とよくあるトラブルを解説します。

RANKとRANK.EQ、どちらを使えばいい?

Excelには順位を求める関数として、古くからあるRANKと、Excel 2010以降に追加されたRANK.EQの2つが存在します。この2つは引数の構成も計算結果もまったく同じで、単純に呼び名が変わっただけです。RANKは以前のバージョンとの互換性のためにExcelに残されている旧式の関数という位置づけで、マイクロソフト自身も将来のバージョンで使えなくなる可能性があると案内しています。そのため、これから新しく数式を組むのであればRANK.EQを使うのが無難です。すでにRANKで組まれた既存のシートを見つけても、動作に問題がなければ急いで書き換える必要はありません。

基本の書き方と順序引数の意味

RANK.EQは「順位を求めたい数値」「比較する範囲」「順序」の3つの引数を取ります。順序は0(または省略)で降順、1で昇順になります。

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

例:C2セルの売上金額を、C2:C11の範囲の中で大きい順(降順)に順位づけする
=RANK.EQ(C2,$C$2:$C$11,0)

順序 0(省略)

  • 降順=数値が大きいほど1位
  • 売上ランキング、試験の得点など「大きいほど良い」場合に使用

順序 1

  • 昇順=数値が小さいほど1位
  • 競技のタイム、不良品数など「小さいほど良い」場合に使用

RANK.AVG

  • 同点に平均順位を付与
  • 1位が2人なら1.5位・1.5位のように返す

「大きい値を1位にしたいのに、順序を1にしてしまい結果が逆になった」という間違いは非常に多く見られます。0と1の意味は感覚と逆に覚えている人も多いため、数式を入れた直後は必ず1位・最下位が想定通りの人になっているか目視で確認する習慣をつけると安心です。

実務でのよくある使用シーン

営業事務担当者であれば、月末に営業担当者10名分の月間売上をC2:C11に集計し、D列にRANK.EQで順位を出して、社内共有用のランキング表を作成するのが典型的な使い方です。「今月のトップ3」を会議資料に転記したり、インセンティブの対象者を判定したりする根拠として使われます。総務担当者であれば、社内研修や昇格試験の点数を一覧にまとめ、受験者30名の中での順位を出して、成績上位者への表彰や、逆に点数が低い層への補講対象の判定に利用する場面がよくあります。どちらのケースも、対象者が増減するたびに範囲がずれないよう、後述する絶対参照の指定が重要になります。

RANK・RANK.EQでよくあるエラー・トラブルと対処法

下の行にコピーすると順位がずれる・#N!Aエラーになる

最もよくあるミスです。範囲を絶対参照($)で固定せずにコピーすると、行ごとに比較範囲がずれてしまいます。

誤:D2に =RANK(C2,C2:C11,0) と入力し、そのままD3〜D11にコピー
→ D3では自動的に範囲がC3:C12にずれ、D11では範囲がC11:C20(大半が空欄)にずれてしまう

対処法は、範囲の部分だけを$C$2:$C$11のように行と列を両方固定することです。=RANK(C2,$C$2:$C$11,0)としてからコピーすれば、どの行でも比較範囲は常に同じC2:C11のままになります。範囲がずれた結果、比較対象の数値自体が範囲の外に出てしまうと#N/Aエラーになることもあるため、コピー後は最終行の数式を数式バーで確認する癖をつけましょう。

同点が複数いると順位が1,1,3のように飛ぶ

「2位が存在しないのはおかしいのでは」と不安になりがちですが、これはRANK・RANK.EQの仕様であり、数式が壊れているわけではありません。

例:売上が90万円の担当者が2人いる場合、2人とも1位になり、3人目(次に売上が高い人)は2位ではなく3位になる

RANK・RANK.EQは「自分より大きい(または小さい)数値が何個あるか」を数えて順位を決めるため、同点の人数分だけ次の順位が繰り上がります。この動きに違和感がある場合や、同点者に「1.5位」のような平均順位を与えたい場合は、RANK.AVG関数への切り替えを検討してください。

順序引数の0と1を逆に覚えていて、結果が逆順になる

数式自体はエラーにならず正常に計算されるため、かえって気づきにくいミスです。

例:売上ランキングのつもりで =RANK.EQ(C2,$C$2:$C$11,1) と順序に1を指定すると、売上が最も少ない担当者が1位として表示されてしまう

エラーが出ないため、順位の列を目視で確認しない限り気づかないまま資料として配布してしまう危険があります。売上・得点など「大きいほど上位」の場面では順序を0または省略、タイムなど「小さいほど上位」の場面でのみ1を指定する、とルールを決めておくと安全です。

初心者がつまずきやすいポイントとコツ

まとめ

RANK・RANK.EQ関数は、営業成績や試験の点数から順位表を作る際に欠かせない関数です。範囲を絶対参照で固定してコピーによるずれを防ぐこと、順序引数の0(降順)と1(昇順)の意味を取り違えないこと、そして同点で順位が飛ぶのは仕様であり必要なら平均順位が出せるRANK.AVGに切り替えることの3点を押さえておけば、実務でのトラブルはほとんど防げます。これから数式を組む場合は、旧式のRANKではなく後継のRANK.EQを使うのが安心です。数式を一から組み立てるのが不安な方は、下のツールで日本語の空欄を埋めるだけで数式を作成できます。

よくある質問

RANKとRANK.EQ、結果は同じですか? どちらを使うべきですか?
どちらも計算結果は同じです。RANKはExcel 2007以前から存在する旧式の関数で、下位互換性のためにExcelに残されているだけの位置づけです。今後のバージョンで利用できなくなる可能性もあるとマイクロソフトが案内しているため、新しく数式を組む場合はRANK.EQを使うことをおすすめします。すでにRANKで組まれている既存のシートを無理に書き換える必要はありません。
同じ点数の人が2人いると、次の順位が3位から始まるのはなぜですか?(1位が2人いて、2位がなく3位になる)
これはRANK・RANK.EQの仕様であり、不具合ではありません。同点の人数分だけ同じ順位が並び、その次の順位は「本来の順番」まで繰り上げて表示されます。たとえば1位が2人いれば、次の人は2位ではなく3位になります。この飛び方が気になる場合や、同点者に平均の順位(1位が2人なら1.5位ずつ)を割り振りたい場合は、RANK.AVG関数を使ってください。
セルをコピーしたら急に順位がおかしくなりました。原因は何ですか?
多くの場合、数式内の範囲(比較対象のセル範囲)に絶対参照($)を付け忘れているのが原因です。相対参照のままコピーすると、コピー先のセルごとに比較範囲が1行ずつずれてしまい、正しい母集団で順位が計算されなくなります。ひどい場合は比較対象の値が範囲の外に出てしまい、#N/Aエラーになることもあります。範囲部分は$C$2:$C$11のように行と列の両方を固定してからコピーしてください。

関連記事

→ RANKの数式を作ってみる ← 記事一覧に戻る