PR

エクセル(Excel)INDEX+MATCH関数で自由にデータ検索しよう!

この記事は約4分で読めます。
【PR】

Excelで条件に一致するデータを抽出したい時、多くの人がVLOOKUP関数を使っているのではないでしょうか?

VLOOKUP関数は、

  • 商品コードから商品名を検索する
  • 社員IDから氏名を取得する
  • カテゴリ別の売上データを参照する

など便利に活用できますが、「左側にあるデータを検索できない」「列を挿入すると参照がズレる」といった制約があります。

そこで役立つのが、INDEX関数とMATCH関数の組み合わせです。
この2つを組み合わせることで、VLOOKUP関数ではできない柔軟な検索が可能になります。

本記事では、INDEX関数・MATCH関数の基本構造と、VLOOKUP関数との違いを解説します。

この記事のゴール

  • INDEX関数・MATCH関数の概要がわかる
  • INDEX+MATCH関数でVLOOKUP関数の代用ができる
  • INDEX+MATCH関数とVLOOKUP関数の違いがわかる
【PR】

INDEX関数、MATCH関数の構造を理解しよう

はじめに、INDEX関数、MATCH関数それぞれの基本構造を理解しましょう。

INDEX関数とは?

INDEX関数は、指定した範囲から「行」と「列」の位置を指定して値を取得する関数です。

構文

INDEX関数の構造は下記の通りで、指定した範囲内の、指定した行・列のセルを出力してくれます。

INDEX関数

=INDEX(範囲, 行番号, [列番号])

範囲  :参照するセル範囲や配列を指定します。
行番号 :取得するデータがある行の番号を指定します。
[列番号](省略可)取得するデータがある列の番号を指定します。
省略すると1列目が選択されます。

例:商品台帳全体から「4行目の価格」を取得する


MATCH関数とは?

指定した値が、範囲内の何番目にあるかを取得する関数です。

構文

MATCH関数

=MATCH(検索値, 検索範囲, [照合の種類])

検索値   :検索する値を指定します。
検索範囲  :検索対象となるセル範囲を指定します。
[照合の種類](省略可)一致の方法を指定します。省略した場合は-1となります。
 -1:検索値以上の最小値を探す(検索範囲は降順に並べておく)。
  1:検索値以下の最大値を探す(検索範囲は昇順に並べておく)。
  0:検索値と完全一致する値を探す。

例:検索範囲から、「キーボード」がある場所を取得する


INDEX+MATCH関数の仕組み

VLOOKUP関数のおさらい

INDEX+MATCH関数について説明する前に、VLOOKUP関数の構文について簡単におさらいしておきましょう。

VLOOKUP関数

=VLOOKUP(検索値, 範囲, 列番号[検索方法])

検索値  :検索する値を指定します。
範囲   :検索対象となるセルの範囲を指定します。
列番号  取得したいデータがある列の番号を指定します。
[検索方法](省略可)一致の方法を指定します。省略した場合は0となります。
  1:近似一致
  0:完全一致

INDEX+MATCH関数の構造

INDEX関数とMATCH関数を組み合わせることで、VLOOKUP関数と同じようにデータを検索できるようになります。

例:「キーボード」の価格を取得する

=INDEX(D2:D6,MATCH(“キーボード”,B2:B6,0))

VLOOKUP関数との違い

① 関数が長くなり、何を示しているかわかりづらい

INDEX+MATCH関数は自由度が高いですが、構造が複雑になりやすいのがデメリットです。

例:INDEX MATCHとVLOOKUPでキーボードの価格を抽出した場合

どれが何を指しているんだ?

しかし、一度理解すれば、VLOOKUP関数の制約を克服できるメリットが大きいです!


② 先頭列でなくても検索できる

VLOOKUP関数は「検索範囲の最左列」しか検索できませんが、
INDEX+MATCHなら、どの列からでもデータを検索できます。

③ 複数の条件を満たすデータの検索ができる

VLOOKUP関数では「1つの条件」しか指定できませんが、INDEX+MATCH関数は「複数の条件を満たすデータ検索」が可能です。

例:カテゴリと商品名の両方を満たす商品コードを取得

=INDEX(B2:B6,MATCH(1,(C2:C6=”家電”)*(D2:D6=8000),0))

この数式は「配列数式」のため、Excel2019以前のバージョンで用いる場合はCSE入力(Ctrl+Shift+Enterで数式を確定)する必要があります。


まとめ

INDEX+MATCH関数を使えば、VLOOKUP関数の制約を克服し、柔軟なデータ検索が可能になります!

  • VLOOKUP関数より自由度が高い!
  • どの列でも検索できる!
  • 複数条件を指定できる!

「VLOOKUP関数では対応できない」と感じたら、INDEX+MATCH関数を活用して、より効率的なデータ検索を実現しましょう!

タイトルとURLをコピーしました