MATCH関数とINDEX関数でランキングを動的表示する方法

MATCH関数とINDEX関数でランキングを動的表示する方法 IT

第1章:MATCH関数とINDEX関数って何?基本をサクッと理解しよう

Excelでデータを扱う上で、「特定の条件に合った情報を探したい」「表から自動的にデータを取り出したい」と思ったことはありませんか?そんなとき役立つのが、MATCH関数INDEX関数です。名前を聞くと難しそうですが、実は使いこなせると実務でかなり重宝します。まずはこの2つの基本をサクッと押さえていきましょう。

MATCH関数とは?

MATCH関数は、ある値がリストの中で何番目にあるかを教えてくれる関数です。たとえば、A列に「田中」「佐藤」「鈴木」「高橋」という名前が並んでいて、その中から「鈴木」が何番目にあるかを調べたいときに使います。

=MATCH("鈴木", A1:A4, 0)

上記の数式では、「鈴木」がA1:A4の中で3番目にあるので「3」と返してくれます。0は「完全一致で探してね」という指定です。

INDEX関数とは?

INDEX関数は、指定した範囲の中から「行番号」と「列番号」を指定して、該当するセルの値を取得する関数です。要するに「表から座標を指定してデータを抜き取る」ようなイメージです。

=INDEX(A1:C3, 2, 3)

この場合、A1からC3の範囲で、2行目・3列目(つまりセルC2)の値を返してくれます。「表の座標から値を取ってくる関数」として覚えておくと分かりやすいですね。

実務でどう活用できる?

それぞれ単体でも便利ですが、この2つを組み合わせると「順位をもとに該当データを動的に抽出する」ことが可能になります。たとえば「売上順位が上位3名の名前を表示」といった動的なランキング表示などが、まさにこの機能の見せ場。

MATCHが「何番目か」を出し、INDEXが「その番目にあるものは何か?」を表示する。まさにタッグを組んでデータ操作を自在にしてくれる名コンビです。

次章では、実際に職場でよく使われる「ランキング表」がどう作られているのか、リアルな場面を想定して解説していきます。ぜひ実務イメージとあわせて理解を深めていきましょう!

第2章:ランキング表ってどう作る?実務でよくあるケースを紹介

ビジネスの現場では、売上やスコア、評価などをもとに個人やチームのパフォーマンスを可視化することが求められます。その際に活躍するのが「ランキング表」です。単なるデータ一覧よりも、順位がつくことで優劣や傾向が一目で分かり、業務報告や社内プレゼンにも説得力が増します。

では、どんな場面でランキング表が実際に使われるのでしょうか?ここでは20代サラリーマンが直面しがちな業務シーンを想定して、典型的なランキング表の例を紹介します。

ケース1:月間売上ランキング

営業職や販売職であれば、個人別の売上成績を月単位で管理するのは基本中の基本です。例えば以下のような売上表があるとします。

名前 月間売上(円)
田中 350,000
佐藤 420,000
鈴木 390,000
高橋 280,000
伊藤 470,000

このようなデータから、売上が高い順に並べて上位3名の名前と売上額を表示したいといった要望はよくあります。ここでMATCHやINDEX関数が活躍するわけですが、その前にまず必要なのが「順位づけ」です。

RANK関数で順位を付ける

実務でランキング表を作る際は、まず元データにRANK関数などを使って「順位」を追加します。先ほどの表にRANK関数を用いて、売上が高い順に順位をつけてみましょう。

=RANK(B2, $B$2:$B$6, 0)

この数式を名前と同じ行の列に追加し、下までコピーすると、それぞれの売上順位が表示されます。0を指定することで「降順」のランキングになります(つまり、売上が高い人が1位)。

なぜ動的表示が必要なのか?

静的な表で並び替えるだけならフィルター機能でも対応できますが、問題はその後の「自動更新」です。売上の数値が変更されても、手動で並び替えし直すのでは業務が煩雑になります。動的なランキング表示であれば、元データさえ更新すれば、順位や該当者の表示が自動で切り替わります。

これこそがMATCH関数とINDEX関数の組み合わせが活きる場面。「誰が何位?」「3位は誰?」といった質問に一発で答えられるようになるのが、動的ランキングの魅力です。

そのまま報告資料にも使える

さらに便利なのは、この動的ランキングをグラフやダッシュボードに組み込むことで、視覚的な資料にも活用できる点です。チーム内共有や月次報告書にもそのまま転用できるため、業務効率が飛躍的にアップします。

次章では、いよいよMATCHとINDEXを組み合わせた具体的な動的ランキングの作り方について、数式付きで詳しく解説していきます。ぜひExcelを開きながら、実際に作ってみてください!

第3章:MATCH関数×INDEX関数=動的ランキング!その具体的な組み方

さて、前章ではランキング表の基本構築とRANK関数の使い方をご紹介しました。この章ではついに、MATCH関数とINDEX関数を組み合わせて、動的にランキングを表示する方法を具体的に解説します。売上データが変わっても、上位者の名前や売上金額が自動で更新される仕組みを作ることで、業務報告や会議資料作成の手間が大きく減ります。Excel初心者の方でも安心して取り組めるよう、ステップごとに丁寧に進めていきます。

ステップ1:元データに「順位列」を追加する

まずは前章のように、下記のような月間売上表を用意してください。

名前 売上(円) 順位
田中 350,000 =RANK(B2,$B$2:$B$6,0)
佐藤 420,000 =RANK(B3,$B$2:$B$6,0)
鈴木 390,000 =RANK(B4,$B$2:$B$6,0)
高橋 280,000 =RANK(B5,$B$2:$B$6,0)
伊藤 470,000 =RANK(B6,$B$2:$B$6,0)

このように、RANK関数で順位列が追加されていることが前提です。

ステップ2:MATCH関数で順位に該当する行番号を特定

たとえば、1位の人の名前を取得したいとします。まずは「順位が1の人」がデータの中で何行目かをMATCH関数で突き止めましょう。

=MATCH(1, C2:C6, 0)

この数式では、「C2:C6」の順位列の中から「1(1位)」が何番目にあるかを探します。仮に1位が「伊藤」でデータの5行目(表で4人目)なら、「5-1行目」で5という数字を返します。

ステップ3:INDEX関数で該当データを取り出す

MATCHで求めた行番号を使って、INDEX関数で名前を取得してみましょう。

=INDEX(A2:A6, MATCH(1, C2:C6, 0))

ここでは、A2:A6の「名前列」から「MATCHで得た行数」に該当する名前を取得しています。これで売上1位の名前が自動的に表示されます。もちろん、順位を「2」にすれば2位の名前、3にすれば3位の名前が同様に表示されます。

ステップ4:売上金額も動的に表示させる

上位者の売上金額も同様の仕組みで取り出せます。今度は売上列(B列)をINDEXで参照します。

=INDEX(B2:B6, MATCH(1, C2:C6, 0))

この数式で、1位の売上金額が表示されます。順位を変えれば、2位や3位の金額も同様に取得可能です。

ステップ5:まとめて上位者リストを表示する

以下のように、別の表で上位3位までのリストを作成することができます。

順位 名前 売上(円)
1位 =INDEX(A2:A6, MATCH(1, C2:C6, 0)) =INDEX(B2:B6, MATCH(1, C2:C6, 0))
2位 =INDEX(A2:A6, MATCH(2, C2:C6, 0)) =INDEX(B2:B6, MATCH(2, C2:C6, 0))
3位 =INDEX(A2:A6, MATCH(3, C2:C6, 0)) =INDEX(B2:B6, MATCH(3, C2:C6, 0))

このようにして動的ランキング表が完成です。売上の数値を更新するだけで、表の順位・名前・金額がすべて自動で切り替わります。毎月の集計業務を効率化したい方には特におすすめです。

次章では、こうした仕組みを作る中でありがちなミスや混乱しやすいポイントについても触れます。トラブルを回避し、より使いやすくするコツをお届けします!

第4章:ミスしやすいポイントとその対策【初心者必見】

前章では、MATCH関数とINDEX関数を活用して動的なランキング表を作成する方法を紹介しました。しかし、いざ自分で手を動かして作ってみると「なぜか名前が表示されない」「#N/Aエラーが出る」「順位と名前がずれてる」など、予期せぬトラブルに直面することも少なくありません。

この章では、初心者が陥りやすい代表的なミスとその対策をわかりやすく解説します。ちょっとした注意で防げるものばかりなので、Excel初心者の方も一度チェックしてみてください。

1. #N/Aエラーが出る

もっともよくあるパターンが#N/Aエラーです。これは、MATCH関数が指定した値を見つけられなかったときに発生します。たとえば以下のような関数を使っていた場合:

=MATCH(4, C2:C6, 0)

データ内に「4位」が存在しないなら、この数式は#N/Aとなります。これを避けるには、以下のようにIFERROR関数を組み合わせて、エラー時の表示をコントロールしましょう。

=IFERROR(INDEX(A2:A6, MATCH(4, C2:C6, 0)), "該当なし")

こうすることで、データに存在しない順位を指定しても「該当なし」と表示されるようになります。

2. 絶対参照 vs 相対参照のミス

公式をコピーして下まで展開するとき、「なぜかうまく表示されない…」という場合はセル参照の記述方法に原因があることが多いです。

たとえば、RANK関数で以下のように書いていたとしましょう。

=RANK(B2, B2:B6, 0)

この式をそのまま下の行にコピーすると、B2がB3やB4などにズレてしまい、比較対象の範囲も一緒に動いてしまうため、正確な順位が出ません。正しくは次のように範囲は絶対参照($マーク)にして固定する必要があります。

=RANK(B2, $B$2:$B$6, 0)

$を使って行・列どちらも固定すれば、どの行にコピーしても範囲が変わらず、正確に順位を算出できます。

3. 並び順が逆になる

MATCH関数で値を探すときに指定する01などの「一致の種類」も、ミスしやすい点の一つです。通常は0(完全一致)を使いますが、よくある勘違いは、昇順に並べているデータに1を使ってしまうケース。

=MATCH(1, C2:C6, 1)

この数式では、データが昇順に並んでいない場合、正しい位置を返してくれません。ランキングの列は通常は降順になっているため、0(完全一致)を使うようにしましょう。

=MATCH(1, C2:C6, 0)

このように書くことで、正確な順位との一致が前提

4. データ範囲を揃えてない

MATCHとINDEXの対象範囲をそれぞれ指定する際に、行数が一致していないこともエラーやずれの原因となります。

たとえば以下のような関数の組み合わせはNGです。

=INDEX(A2:A7, MATCH(1, C2:C6, 0))

この場合、INDEXで参照している範囲(A2:A7)の行数と、MATCHで参照している順位列の範囲(C2:C6)の行数が合っていません。必ず行数を揃えることが重要です。

=INDEX(A2:A6, MATCH(1, C2:C6, 0))

このように修正すれば、関数同士の噛み合わせが正しくなり、想定通りのデータが表示されます。

5. 数値が文字列になっている

データの形式によっても関数が正しく動かないことがあります。特に「売上」や「順位」などの数値が、実は文字列として入力されているケース。

セルの見た目では数字に見えても、内部では文字列扱いでMATCH関数がマッチできないことがあります。その場合は、以下のような対処が有効です。

  • 該当列を選択 → 「データ」タブ →「区切り位置」→「完了」をクリックして数値として整形
  • 新しい列で=VALUE(A1)などを使って正式な数値に変換

まとめ:原因が分かれば解決もカンタン

今回紹介したミスの大半は、参照先の範囲やデータ形式、セルの指定ミスが原因です。エラーが出ても焦らず、一つひとつ確認していけば必ず直せます。

とくにMATCH関数とINDEX関数の組み合わせは、正しく設計すれば非常に強力なツールになります。自分がどこでつまずきやすいのかを把握しておくことで、ミスもグッと減らせるはずです。

次章では、今回の内容をそのまま使えるように、実践向けのExcelテンプレートを用意しました。ダウンロードして自分の業務データに応用してみてください。

第5章:サンプル付き!今すぐ使いたくなる実用テンプレートを公開

ここまで、MATCH関数とINDEX関数を組み合わせて、動的にランキングを表示する方法を順を追って解説してきました。基本の理解から応用、ミス対策まで把握できた今こそ、実際に手を動かしてみるチャンスです。

この章では、今すぐ実務に活用できるように、完成済みのExcelテンプレートを無料でダウンロードできるように用意しました。以下のポイントを押さえた設計になっているので、あなたの職場でもきっと役立つはずです。

テンプレートの主な機能

  • 任意のデータに基づく動的な順位表示
  • 順位ごとに対応した名前・数値を自動取得
  • RANK関数・MATCH関数・INDEX関数の基本構文がすでに組み込まれている
  • #N/Aエラー対策済みのIFERROR対応済みの安全設計

Excelや関数にまだ慣れていない方でも、テンプレートを開いて「このセルの数式がどうなっているか?」を確認するだけで、構造を自然に理解できます。職場での集計業務や定例報告にそのまま使えるよう、データ構成や見た目のデザインにも配慮しました。

テンプレートの使い方

  1. 下記リンクからExcelテンプレートファイルをダウンロードします。
  2. 自分の業務データに合わせて、売上やスコアなどの項目を上書きします。
  3. 名前や順位、数値のセルが自動的に更新されることを確認します。
  4. 必要に応じてランキングの上位数(3位→5位など)をカスタマイズ可能です。

💡ポイント:数式はなるべくコメント付きにしてあるので、「なぜこの関数を使っているのか?」も理解しやすくなっています。

テンプレートダウンロード

以下のリンクより、ZIPファイル形式でダウンロードできます。解凍後、ranking_template.xlsx を開いてご利用ください。

▶ テンプレートを今すぐダウンロード

※リンクはダミーです。実際のダウンロードリンクを作成する際は、自社サイトやGoogleドライブなどにアップロードしてURLをご指定ください。

実務にどう活かすか?

テンプレートは月間売上ランキングを例に作られていますが、以下のような場面にも応用可能です:

  • 社内評価スコア(例:カスタマー対応点数)
  • Webサイトのアクセス数ランキング
  • アンケート結果に基づく人気順位
  • 製品別の売上トップリスト

MATCH関数とINDEX関数の知識があれば、ランキング系の表は「更新いらず」のデータベースに早変わりします。毎月の管理業務を効率化させる武器になること間違いなしです。

まとめ:学んだ知識を”使える力”に変えよう

テンプレートを使うことで、数式の構造を目で見て、編集して、自分の業務に落とし込む動作がスムーズにできます。「知ってる」から「使ってる」へ。このステップを踏むことで、あなたの業務効率は確実に上がります。

ぜひ、このテンプレートをベースに、MATCH関数とINDEX関数を自在に操るエクセルスキルを手に入れてください。実務で輝く”ちょっとできる人”への第一歩です。

それでは、Excelの世界をもっと自由に。ランキング作成、楽しんでみてください!

コメント

NewsTowerをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む