第1章:はじめに:なぜ複数条件のランキングが必要なのか?
Excelでデータを扱っていると、「この中でトップは誰?」「どの部署が一番結果を出している?」といった具合に、データの順位をつけたい場面が多くあります。単純なランキングであれば、RANK関数やRANK.EQ関数を使えば事足ります。しかし、実際のビジネスシーンでは、単に数値の大小だけでなく、「特定の部署内での順位」や「対象期間内の成績ランキング」など、複数の条件を考慮したランキングが必要になる場面が少なくありません。
たとえば、営業部と技術部の社員をひとつのシートで管理している場合、「全体でのランキング」ではなく「各部署ごとに成績上位者を知りたい」といったニーズがあります。また、プロジェクトの進行状況を比較するときに「同時期に開始した案件だけを対象に比較したい」といったように、より細かな切り口が求められるのです。
実は、Excelの標準的なランキング関数だけでは、こうした「複数条件に対応したランキング」を作ることはできません。だからこそ、関数の組み合わせを理解し、ケースに応じた工夫が求められるのです。
このブログ記事では、そんな現場で役立つ「複数条件を用いたランキングの作成方法」について、基本から実践的なテクニックまでを順を追って解説していきます。初心者でも理解できるように、具体的な関数例や使いどころも丁寧に紹介していくのでご安心ください。
まず、第2章ではランキングの基本となるRANK関数の仕組みと、その限界について学び、第3章では関数の組み合わせによって複数条件を評価する方法を紹介。そして、第4章では実際のサンプルデータを使いながら、リアルなシナリオでどのように複数条件のランキングを実装するかをステップで解説していきます。最後の第5章では、実務に応用できる活用アイデアを提案し、あなたのExcelスキルをワンランクアップさせます。
20代のビジネスパーソンにとって、Excelの高度な使い方を習得することはキャリアアップへの近道です。今回の内容をマスターすれば、職場で一目置かれる「Excelに強い人」への第一歩を踏み出すことになるでしょう。それでは、次章から具体的なスキルを身につけていきましょう!
第2章:基本のRANK関数とその限界
Excelでランキングを作る際、まず思い浮かぶのがRANK関数、あるいはその改良版であるRANK.EQ関数です。これは数値間の順位を簡単に求めることができる非常に便利な関数で、多くのビジネスシーンで活用されています。しかし、この便利な関数にも知っておくべき限界があります。
RANK関数 / RANK.EQ関数の基本的な使い方
RANK(number, ref, [order])という構文で、対象のnumberがref内で何位かを返します。例えば、以下のようなデータがあったとします。
| 名前 | 点数 |
|---|---|
| 田中 | 85 |
| 佐藤 | 92 |
| 鈴木 | 78 |
| 高橋 | 92 |
このとき、佐藤さんの順位を求めるには次のように関数を使います。
=RANK.EQ(B2, B$2:B$5)
この関数は「B2の値(92)がB2からB5の範囲内で何位にあるか」を昇順(デフォルトで降順)で評価し、2位タイまでが1位、次が3位というような結果を返します。
重複順位の扱いにも注意
上記の例のように、同率のスコアが存在する場合、RANK関数は同じ順位を複数に与え、そのぶん次の順位を飛ばします(スキップされます)。「92点が2人 → 両方1位 → 次は3位」となるのです。
この挙動はスポーツなどのランキングには適していますが、データ分析などで順位の連番を維持したい場合(順位に重複を持たせたくない場合)には、少し使いづらく感じる方もいるかもしれません。
なぜ複数条件に対応できないのか?
RANK関数は非常に強力ですが、基本的には一つの数値列に対しての順位しか評価できません。つまり、「同じ部署ごとのランキング」や「特定の日付内のデータのみを対象としたランキング」を作るような、条件付きの評価には対応していないのです。
たとえば、以下のように部署が混在している場合、「営業部だけで成績上位者を見たい」というケースではRANK関数だけでは対応できません。
| 名前 | 部署 | 点数 |
|---|---|---|
| 田中 | 営業部 | 85 |
| 佐藤 | 技術部 | 92 |
| 鈴木 | 営業部 | 78 |
| 高橋 | 営業部 | 92 |
このケースで営業部内だけの順位を求めようとすると、まず「営業部」というフィルターをかけてからRANK関数を適用する必要があります。しかし、RANK関数単体ではそのような「対象条件」を判定・適用できる仕組みがないため、別の関数との組み合わせが必要になります。
次章に向けて:条件付きのRANKをどう作るか
ここまでの内容で、「RANK関数の基本的な役割と、複数条件に対応できないという限界」が理解できたかと思います。この限界を突破するには、IF, COUNTIFS, SUMPRODUCTなど複数の関数を連携させる工夫が必要になります。
次章では、実際にこれらの関数を組み合わせて「条件付きのランキング」を作るテクニックを解説していきます。少し応用的な内容になりますが、一歩ずつ説明していくのでご安心ください!
第3章:関数を組み合わせた複数条件ランキングの作成方法
単一条件では対応できないランキングを作成するには、Excelの関数を組み合わせて使う必要があります。ここでは、IF、COUNTIFS、SUMPRODUCTなどを用いて、「特定条件を満たすデータの中での順位」を求めるテクニックを解説します。
基礎となる考え方
複数条件でランキングを作るには、「対象のデータが、特定の条件を満たす他のデータよりどれだけ高いか(または低いか)」を計算する必要があります。これはつまり、条件を満たすデータの中で、自分より高いスコアを持つ人の数を数えるということです。
この「自分より上位が何人いるか」のカウントに応用できるのが、COUNTIFS関数です。また、複雑な条件を伴う場合には、SUMPRODUCT関数が非常に強力な味方になります。
COUNTIFSを使った複数条件ランキング
以下のようなデータがあるとします:
| 名前 | 部署 | 点数 |
|---|---|---|
| 田中 | 営業部 | 85 |
| 佐藤 | 技術部 | 92 |
| 鈴木 | 営業部 | 78 |
| 高橋 | 営業部 | 92 |
この中で、「営業部」の中だけで点数のランキングをつけたいとしましょう。高橋さんに適用する関数は以下のようになります。
=COUNTIFS(B$2:B$5, B5, C$2:C$5, ">" & C5) + 1
この式は、「同じ部署(B列)に属し、かつ自分より点数(C列)が高い人」を数え、その数に1を足すことで、順位を算出します。たとえば高橋さんは営業部所属で92点なので、「営業部かつ92点より上」は存在しない → 0 + 1 = 1位 というわけです。
このようにCOUNTIFSを使えば、複数条件(ここでは部署と得点)を組み合わせたランキングが可能です。
SUMPRODUCTを使った柔軟なランキング
COUNTIFSでは複数条件はかけられますが、等しい値の扱いや、条件の柔軟性に限界がある場合があります。そんなとき便利なのがSUMPRODUCTです。以下のような式で、同等以上のスコアにも対応した計算ができます。
=SUMPRODUCT(
(--($B$2:$B$5=B2)) *
(--($C$2:$C$5>C2))
) + 1
これは、B列(部署)が同じで、C列(点数)が自分より上のデータの数を数える仕組みです。高い点数の数を数えて「上に何人いるか」を求める考え方はCOUNTIFSと同様ですが、SUMPRODUCTは条件の組み方が柔軟なので、より複雑な設定にも対応可能です。
同点の扱いと昇順・降順設定
注意点として、COUNTIFSもSUMPRODUCTも、基本的には「何人が自分より高得点か(または低得点か)」をベースにしています。つまり、RANKのように自動で同順位を割り当てるのではなく、同じ点数の場合は順位が連続します(例:92点が何人いても全員1位になるのではなく、あくまで同じスコアだと後ろのデータが順位が下になることも)。
順位を「同順位あり」「連番で決定」どちらにしたいかは、COUNTIFSの条件や比較演算子(>、>=)の変更で調整できます。
まとめ
ここまでで、「部署ごとのランキング」「複数条件での順位づけ」のための関数の組み合わせ方を学びました。COUNTIFSやSUMPRODUCTを使うことで、標準のRANK関数では対応できなかった柔軟なランキングが可能になります。次章では、実際のシートを使ってリアルなビジネスシーンを想定したランキングの作り方をステップで解説していきます。ぜひこのまま読み進めて、実践的なスキルを身につけましょう!
第4章:実践!部署別×評価点でランキングを作ってみよう
これまでの章では、RANK関数の限界と、それを補うCOUNTIFSやSUMPRODUCTといった関数の使い方をご紹介してきました。いよいよ今回は、実践編として、実際のデータを用いながら「部署ごとの成績ランキング」を作成する具体的な手順をステップ形式で解説していきます。
ステップ1:サンプルデータの準備
まず、以下のような社員ごとの成績データを想定しましょう。このように、部署とスコアが1つの表にまとまっているデータは、現場でもよく見受けられます。
| 名前 | 部署 | 評価点 |
|---|---|---|
| 田中 | 営業部 | 85 |
| 佐藤 | 技術部 | 92 |
| 鈴木 | 営業部 | 78 |
| 高橋 | 営業部 | 92 |
| 山田 | 技術部 | 88 |
| 三浦 | 営業部 | 73 |
このデータは、A列:名前、B列:部署、C列:評価点が入力されています。ここに、部署内での評価点順位をD列に追加していきましょう。
ステップ2:部署ごとのランキング関数を入力
たとえば、D2セルから「部署内ランク」を算出するとします。ここではCOUNTIFS関数を使用します。
=COUNTIFS(B$2:B$7, B2, C$2:C$7, ">" & C2) + 1
この関数の意味は、「自分と同じ部署で、かつ自分より評価点が大きい人をカウントし、そこに1を加える」ことです。
たとえば、田中さん(営業部・85点)の場合、
- 営業部所属者の中で
- 85点より高い → 高橋(92点)のみ
よって、COUNTIFSの結果が1、+1で2位となります。
ステップ3:同点の扱いに注意しよう
高橋さんも92点、でも鈴木さんは78点なので、部署でのスコアを比較すると次のような順位になります。
- 高橋(92点) → 1位
- 田中(85点) → 2位
- 鈴木(78点) → 3位
- 三浦(73点) → 4位
ただし、高橋さんが複数人いた場合などは、COUNTIFSでは順位が連番になるため、同点でも順位が異なる可能性があります。同点で同順位を与えたい場合は、>= C2 のように演算子を調整するか、SUMPRODUCT関数の使用を検討するのがよいでしょう。
ステップ4:応用!複数の条件を組み合わせる
次に、より高度な場面を想定してみましょう。たとえば「部署」だけでなく「年次評価」の期間が異なるデータがあるとします。評価の期間が「2023年」「2024年」など年によって異なる場合、次のようなデータ構成になります。
| 名前 | 部署 | 年 | 評価点 |
|---|---|---|---|
| 田中 | 営業部 | 2023 | 85 |
| 佐藤 | 技術部 | 2023 | 92 |
| 鈴木 | 営業部 | 2023 | 78 |
| 高橋 | 営業部 | 2024 | 92 |
| 山田 | 技術部 | 2024 | 88 |
| 三浦 | 営業部 | 2024 | 73 |
この場合、部署に加えて「同じ年」でフィルターをかける必要があるため、COUNTIFSを以下のように拡張します。
=COUNTIFS(B$2:B$7, B2, C$2:C$7, C2, D$2:D$7, ">" & D2) + 1
ここでは順に:
- B列(部署)
- C列(年)
- D列(評価点)
の3条件を使って、その人と同じ「部署 × 年」の中で、評価点が上の人を数えています。
まとめ:実践こそがスキルになる
ここまでで、評価データに対して「部署だけ」や「部署 × 年」といった形で、実際に業務でよくあるパターンのランキングが作れることが分かりましたね。関数さえしっかり理解していれば、あと必要なのは「どう組み合わせるか」という発想力だけです。
次章では、この学んだ内容をさらに発展させ、「営業成績の評価」「プロジェクト管理」など、よりリアルなビジネス活用のアイデアをお伝えします。仕組みを知るだけでなく、どう使うかを考えることで、あなたのExcelスキルは確実にレベルアップします!
第5章:業務で使える!複数条件ランキング活用アイデア
これまでの章を通じて、複数条件によるランキングの仕組みと実装方法について学んできました。ここでは、それを業務でどう活かすかという観点から、実務に即した活用アイデアを紹介していきます。具体的なシーンを想定しながら、あなたの職場ですぐに応用できる形でまとめました。
1. 営業成績の可視化と評価
営業職では、月ごと・チームごと・担当エリアごとに成績を集計・評価することがよくあります。単純な売上額だけでなく、エリア内での順位や、月別の売上推移などを見たい場面もあるでしょう。たとえば以下のような項目を含む表を使えば、部門や担当エリア内でのランキングがすぐに作成できます。
| 営業担当者 | エリア | 月 | 売上 | エリア別ランク |
|---|---|---|---|---|
| 田中 | 関東 | 1月 | 120万円 | 関数で算出 |
| 佐藤 | 関西 | 1月 | 100万円 | 関数で算出 |
| 鈴木 | 関東 | 1月 | 130万円 | 関数で算出 |
例えば、COUNTIFSやSUMPRODUCTを使って「同じエリアかつ同じ月の売上との比較」でランキングを出せば、公平な成績評価が実現します。
2. プロジェクトごとの進捗ランキング
部門ごとに複数のプロジェクトを抱えている企業では、各プロジェクトの進捗率をランキング化することで、リスクの早期発見や進捗の見える化につながります。「部署 × プロジェクト × 開始時期」を複数条件としたランキングを作ることで、同じスタートラインに立った案件同士の比較も可能です。
たとえば、次のようなデータを使って:
- 部署ごとのプロジェクト一覧
- 開始月と進捗率
「開始月 × 部署」でランキングを実施すれば、同じタイミングにスタートしたタスクのうち、どれが順調で、どれが遅れているかが一目で分かります。
3. 条件付き書式による可視化の強化
ランキングは数値だけでも有効ですが、条件付き書式を併用することで、より直感的に“位置づけ”を見せることができます。たとえば:
- ランキング1位を金色
- 2〜3位を銀・銅で着色
- ワースト3を赤系で表示
こうしたビジュアル強化により、上司やメンバーが一目で状況を把握できます。Excelの条件付き書式ルールを使えば、数式ベースで動的に色付けできるので、データ更新にも自動対応可能です。
4. ピボットテーブル+スライサーでのインタラクティブ分析
複数条件のランキングロジックを、ピボットテーブルとスライサーと組み合わせることで、より洗練されたインタラクティブな分析も可能になります。
例えば、「年」「部署」「期間」などで自由にスライスしながら、その時点でのランキング表示を動的に切り替えるといった使い方も、会議や報告資料でインパクトを発揮します。
ピボットテーブルの内訳で進捗率や得点を集計し、RANK.EQ や INDEX+MATCHを組み合わせれば、視覚的に優れたレポートを作成できます。
まとめ:ランキングを業務に活かす視点
ランキングは単なる「順位づけ」ではなく、状況を把握し、差異を可視化する非常に強力なツールです。このテクニックを業務で活かせば、〈今注目すべきデータ〉を一瞬で抽出でき、的確な意思決定を下す材料となります。
今回紹介したような実務アイデアをベースに、あなた自身の業務でも一工夫加えた応用を試してみてください。難しそうに見えるExcel関数も、目的に沿って使うことで劇的に価値を生むことが体感できるはずです。
Excelの使い方一つで、仕事の質もスピードも変えられる。ぜひこの記事を参考に、あなたの業務へランキングの視点を取り入れてみてください!


コメント