第1章:そもそもRANK関数って何?基本の使い方を押さえよう
Excelでランキング表を作るときに大活躍するのが、RANK関数です。名前の通り、「順位」を計算してくれるこの関数ですが、実務でしっかり使うためには、まずその基礎を押さえておくことが大切です。ここでは、RANK関数の使い方と基本構文について、初心者の方にもわかりやすく解説します。
RANK関数とは?
RANK関数は、数値がデータ範囲の中で何位かを求める関数です。たとえば、ある社員の売上が他の社員と比べて何番目かを計算したいときに使います。シンプルに「数字の順位」を自動で付けてくれる便利な関数です。
基本の構文
=RANK(数値, 範囲, [順序])
- 数値:順位を付けたい対象の数値です(セルを指定)
- 範囲:順位を求める比較対象の範囲
- 順序(省略可):昇順か降順かを指定します(
0または省略=降順、1=昇順)
たとえば、=RANK(B2, B2:B6, 0)と書くと、B2の値がB2〜B6の中で何位か(大きい順)が求められます。
使い方の例:売上の順位を求める
例えば、以下のような社員の売上データがあるとします。
| 氏名 | 売上(万円) | 順位 |
|---|---|---|
| 佐藤 | 120 | =RANK(B2, B2:B6) |
| 鈴木 | 150 | =RANK(B3, B2:B6) |
| 田中 | 90 | =RANK(B4, B2:B6) |
| 高橋 | 150 | =RANK(B5, B2:B6) |
| 渡辺 | 110 | =RANK(B6, B2:B6) |
このように、各セルにRANK関数を設定すれば、「売上が高い順の順位表」を簡単に作成できます。ただし、同じ数値があると同順位になる点に注意しましょう(例:鈴木さんと高橋さん)。
RANK.EQとRANK.AVGの違いにも注目
Excelには似たような関数に、RANK.EQとRANK.AVGもあります。どちらも基本的にはRANK関数と同じように使えますが、同順位に対する処理が異なります。
- RANK.EQ:同順位の場合は同じ順位を付け、次の順位をスキップ(デフォルトのRANKと同様)
- RANK.AVG:同順位の場合は、該当する順位の平均値を割り当てる
この違いは、ランキングの見せ方や公平性を考えるときに重要になってきます。実際のビジネスでは、どの方法が適しているかを判断して使い分けるとよいでしょう。
まとめ
RANK関数は、数値データに順位をつけるための強力なツールです。構文はシンプルですが、データ分析や業績評価など、実務での活用範囲はかなり広いです。この章で基本を押さえたので、次章では実務で役立つ具体的なランキング表の作成方法に踏みこんでいきましょう。
第2章:実務で使える!シンプルなランキング表の作り方
RANK関数の基本がわかったところで、今回は実務でよく使われるシーンを想定したランキング表の作り方を紹介します。特に営業部門などで頻出する「売上実績」や「業績評価」のような情報を、Excel上で見やすく、かつ手間なく管理する方法を解説します。
シンプルなランキング表を作成する手順
たとえば、以下のようなデータがあったとします(B列が売上):
| 氏名 | 売上(万円) | 順位 |
|---|---|---|
| 佐藤 | 120 | |
| 鈴木 | 150 | |
| 田中 | 90 | |
| 高橋 | 150 | |
| 渡辺 | 110 |
この表に順位を表示させるためには、RANK関数を使ってC列に計算式を入れます。C2セルに以下のように入力します:
=RANK(B2, B$2:B$6, 0)
そして、C2セルの式を下方向にコピーすれば、他の行も自動的に順位が表示されます。ポイントは、範囲を絶対参照($)にすること。こうすることで、コピー時にも比較対象の範囲がズレずに固定されます。
こうすると見やすさがアップ!表示を工夫するコツ
- 順位に「位」を付ける:ランキングとしての視認性をアップさせたい場合、
="第"&RANK(B2,B$2:B$6,0)&"位"のように文字列と組み合わせると直感的に見やすくなります。 - 条件付き書式で色分け:トップ3だけを目立たせたいときは、条件付き書式で順位が1〜3位のセルを背景色で強調するとより伝わりやすくなります。
実務的なワンポイント:同順位の扱いに注意
RANK関数の特性として、同じ数値には同じ順位が付き、次の順位が飛ばされるという点があります。(例:150万円が2人ならともに1位、次は3位になる)これは実務上、”同率1位”の扱いとしては正しいですが、報酬や評価につながる場合は慎重な判断が必要です。
もし「平均順位にしたい」などの要望がある場合は、RANK.AVG関数を使うと対応できます(こちらは第5章で詳しく解説します)。
まとめ
この章では、売上データを基にしたシンプルなランキング表の作成方法について紹介しました。RANK関数を少し工夫して使えば、ただの数字の羅列だった表も一気に見やすく・使いやすくなります。次章では、さらに進んだ使い方として、「データが変わっても自動で順位が更新される仕組み」にチャレンジしていきましょう。
第3章:データが変わってもラクラク!ランキングの自動更新テクニック
前章で作成した「売上データに基づくランキング表」ですが、実務ではデータが日々更新されるのが当たり前。毎回、手動でRANK関数を打ち直したり、コピーし直したり……といった作業は意外と手間になります。そこでこの章では、データが変わっても自動で順位が更新される仕組みを作るためのテクニックを紹介します。
元の構造をそのまま活かせるのがExcelの強み
実は、前章で紹介した以下のようなRANK関数の使用方法は、それだけである程度の自動更新に対応しています。
=RANK(B2, B$2:B$6, 0)
この数式は、B列の「売上」データが更新されれば、それに応じてC列の「順位」も自動で再計算されます。つまり、Excelが自動でランキングを調整してくれるのです。とはいえ、いくつか注意点や、より便利に使うための工夫があります。
応用1:データが追加されても対応できるようにする
売上データが増えた場合(たとえば新しく社員が追加された場合)、最初に設定した順位の範囲B$2:B$6のままだと、その新しいデータはランキングに含まれません。これでは正確な順位が出せませんよね。
この問題を解決するには、以下の2通りのアプローチがあります:
- 範囲を広めにとっておく(例:B$2:B$100 など)
- Excelのテーブル機能を活用する
テーブル機能はおすすめです。データ範囲をテーブル化しておくことで、新しいデータを追加しても関数が自動的に対応してくれるからです。
テーブル化の手順:
1. 範囲(例:A1〜C6)を選択
2. メニューの「挿入」→「テーブル」をクリック
3. 「先頭行をテーブルの見出しとして使用する」にチェック
テーブル化すると、関数の中でも列名が使えるようになり、汎用性が上がります。例:
=RANK([@売上], [売上], 0)
このようにすれば、どんなにデータが増えても全自動で最新の順位表が完成します。
応用2:並べ替えなくても「見た目」で順位順を表示する
「順位が自動で更新されても、見た目はバラバラで分かりづらい」という声もあります。そんな時に役立つのが、並べ替えではなくフィルターと条件付き書式を活用する方法です。
- オートフィルター: テーブルなら「順位」列のフィルターで並び替えがすぐ可能。データを動かす必要なし。
- 条件付き書式: トップ3だけを色付きにすることで、誰が上位かひと目でわかります。
応用3:名前やデータが削除された場合の対応
実務では社員の異動やデータの削除もあります。空白セルが混ざるとRANK関数が正確に動作しないことも。そんなときは、IF関数と組み合わせてエラーや空欄対策を入れておきましょう。
=IF(B2="","",RANK(B2,B$2:B$100,0))
このようにすれば、B列が空白の場合は順位も空白にでき、見た目にも整った表になります。
まとめ
この章では、「ランキング表の自動更新」を実現するためのテクニックを紹介しました。Excelなら、数式を正しく設定しておくだけで売上データの変更や追加、新しい入力にも柔軟に対応できます。
実務での作業効率を大幅にアップさせるために、ぜひこれらのテクニックを取り入れてみてください。
次章では、さらに一歩進んだ応用として、「部署別」など複数条件でのランキングの作成方法を見ていきましょう。
第4章:複数条件での応用例!部署別ランキングを作ってみよう
ここまでで、基本的なRANK関数の使い方とランキング表の自動更新までを習得できたと思います。では、いよいよ一歩進んだ応用編として、「部署別」や「地域別」など、複数の条件に基づいたランキングをどう作るか、実務的なテクニックをご紹介します。
「全体」ではなく「部署ごと」に順位を分けるには?
たとえば以下のような営業実績データがあったとします。この表には氏名、部署、売上の情報が含まれています。
| 氏名 | 部署 | 売上(万円) | 順位(部署別) |
|---|---|---|---|
| 佐藤 | 営業一課 | 120 | |
| 鈴木 | 営業二課 | 150 | |
| 田中 | 営業一課 | 90 | |
| 高橋 | 営業二課 | 150 | |
| 渡辺 | 営業一課 | 110 |
このようなデータで、「営業一課内での順位」「営業二課内での順位」をそれぞれ表示したいとします。しかし、通常のRANK関数では全体の中での順位しか求められません。そこで登場するのがIF関数とのコンビネーションです。
IF関数+RANK関数で部署別ランキングを実現
まずは、部署ごとに範囲を分けて順位を計算する必要があります。ただしExcelには「条件を満たす範囲のみを抽出してRANKする」という機能は直接ないため、配列数式を使って条件付きランキングを構築します。
以下は、部署が「営業一課」の場合にのみRANKを計算する関数の例です(C列が部署、B列が売上):
=IF(C2="営業一課",RANK(B2,FILTER(B$2:B$6,C$2:C$6="営業一課")), "")
この式のポイントは、FILTER関数を使って、「営業一課」のデータだけを抽出した売上範囲を作り、その中で順位を評価しているところです。
なお、FILTER関数はOffice 365/Excel 2021以降で利用できます。旧バージョンやFILTER関数が使えない場合は、手動で部署ごとにデータを分けて表を作る必要があります。
関数の動きまとめ:
IF(...):対象の部署かどうかを判定FILTER(...):部署に一致するデータのみを抽出RANK(...):抽出した中で順位を付ける
部署名を変えても対応できる!動的な式にするには
「営業一課」など部署名をセルに入力している場合、以下のように参照セルを使えば、動的に部署別の順位を表示できます。たとえばD2セルに以下のように記述します:
=IF(C2<>"", RANK(B2, FILTER(B$2:B$6, C$2:C$6=C2)), "")
この式では、C列の部署名を自動で判定し、同じ部署の売上だけを抽出してランキングに使うため、部署が変わっても正確に順位が表示されるというメリットがあります。
条件付き書式で「部署別1位」だけ目立たせる技
さらに見やすくするためには、条件付き書式を使って、各部署のトップだけをハイライトする設定もおすすめです。
手順:
- 「順位(部署別)」の列を選択
- 「ホーム」→「条件付き書式」→「新しいルール」
- 「指定の値に等しい」を選び、値に
1を入力 - 好きな塗りつぶし色を設定
これで、各部署の1位だけに色が付き、視認性がグッとアップします。
まとめ
この章では、RANK関数を応用して、部署別や複数条件のランキングを作成する方法を解説しました。IF関数やFILTER関数との組み合わせにより、「条件付きの順位付け」が可能になります。
ビジネスの現場では「全体」よりも「部門ごと」「地域ごと」の評価が必要になることも多いため、ぜひこのテクニックを押さえておきましょう。
次章では、INDEXやMATCH関数などを加えて、さらなる応用テクニックを紹介していきます。
第5章:ここまでできる!RANK関数×関数の組み合わせ術
これまでの章では、RANK関数単体、あるいはIFやFILTER関数と組み合わせた応用方法を紹介してきました。最終章の今回は、さらに実務に強くなるためのスキルとして、RANK関数と他の関数(RANK.AVG、RANK.EQ、INDEX、MATCH、IF など)を組み合わせる応用術を紹介します。使いこなせるようになれば、「欲しい情報をランキング順に自動表示する」レベルの表現力が手に入ります。
RANK.AVGとRANK.EQの違いをおさらい
まずは、実務で混乱しやすいRANK.AVGとRANK.EQの違いを整理しておきましょう。
- RANK.EQ(RANK関数と実質的に同じ):
同じ数値が複数ある場合、すべてに同じ順位を付け、次の順位は飛ばす。
例:1位・1位・3位 - RANK.AVG:
同順位がある場合、対象順位の平均順位を計算して付ける。
例:1.5位・1.5位・3位
報酬や昇進のランキングなどで、公平性や順位スキップの有無が重要になる場面では、この2つを切り替えて使うことで柔軟な対応が可能になります。
INDEX+MATCH+RANKで「順位順リスト」を自動生成
「誰が何位か」だけでなく、「〇位は誰?」という形式で並べ替えられた名前リストを作成したいケースもありますよね。そんなときに役立つのがINDEX関数とMATCH関数を組み合わせたテクニックです。
例えば以下のようなデータがあるとします:
| 氏名 | 売上 | 順位 |
|---|---|---|
| 佐藤 | 120 | 3 |
| 鈴木 | 150 | 1 |
| 田中 | 90 | 5 |
| 高橋 | 150 | 1 |
| 渡辺 | 110 | 4 |
この順位列に基づいて「〇位は誰か?」を順番に別リストで表示するには、以下のような数式を使います(たとえば、F列に1位〜5位のリストを作る)。
=INDEX(A$2:A$6, MATCH(ROW(A1), C$2:C$6, 0))
ポイント解説:
INDEX(A$2:A$6, ...):名前(氏名)を取り出すMATCH(ROW(A1), C$2:C$6, 0):順位列から「1位」「2位」…と一致する行番号を探すROW(A1):1、2、3…と順に数字を返すので、ランキング順の取得に最適
この組み合わせにより、売上順の名前リストが自動で生成されるため、報告資料や社内共有資料で非常に重宝します。
応用:IFで空白対処&エラー回避
ランキング対象のデータが一部未入力だった場合や、順位が重複しすぎてリストが正確に生成されない可能性もあります。そんなときはIF関数を組み込み、空白時やエラー時の処理を追加しておくと安全です。
=IFERROR(INDEX(A$2:A$6, MATCH(ROW(A1), C$2:C$6, 0)), "")
このようにすれば、該当データがないときは空白になるので見栄えも整いますし、後続の処理やフィルターにも対応しやすくなります。
まとめ
RANK関数は、単体でも非常に使い勝手のよい関数ですが、RANK.AVGやRANK.EQで意図通りの順位付けを行ったり、INDEXやMATCHと組み合わせて「ランキング順の表示」まで自動で行えるようになると、その価値は何倍にも広がります。
実務では「データの変化にどう対応するか」「誰が上位かをすぐ確認できるか」といったスピードと柔軟性が求められます。本章のテクニックを活用すれば、ランキング表作成の自動化がさらに高いレベルで実現できます。ぜひ、自分の業務にも取り入れて、Excelを武器の一つにしてください。


コメント