INDEX関数は、指定した範囲から行番号・列番号で指定した位置の値を取得する関数。MATCH関数は、指定した値が範囲内で何番目にあるかを調べる関数。INDEX関数とMATCH関数を組み合わせることで、列追加や表変更に強く、左右検索も可能になる。
目次
Excelでデータ検索を行う際、多くの人が最初に使うのがVLOOKUP関数である。しかし、列を追加しただけで数式が崩れたり、左方向の検索ができなかったりと、不便さを感じる場面も少なくない。そこで注目されるのが、INDEX関数とMATCH関数を組み合わせた検索方法である。
本記事では、INDEX関数とMATCH関数それぞれの役割から、組み合わせた具体的な使い方、実務でよくある活用例までを順を追って解説する。
INDEX関数、MATCH関数とは何か

ここでは、INDEX関数とMATCH関数を個別に取り上げ、役割と考え方を解説しよう。
■INDEX関数の役割と基本的な考え方
INDEX関数は、「指定した範囲の中から、指定した行と列が交わる部分にあるデータを抽出する関数」である。ポイントは、値を直接探すのではなく、位置を指定して値を返すという点にある。
INDEX関数式は下記のようになる。
=INDEX(配列,行番号,列番号)

INDEX関数の考え方は次のとおりである。
- どの範囲から値を取り出すかを指定する

- 何行目・何列目かを数値で指定する

- 指定された位置の値を返す

■MATCH関数の役割と基本的な考え方
MATCH関数は、INDEX関数とは正反対の役割を持つ。MATCH関数は、「指定した値が範囲の中で何番目にあるか」を調べる関数である。
MATCH関数式は下記のようになる。
=MATCH(検査値,検査範囲,照合の種類)

MATCH関数の処理内容は次のとおりである。
- 探したい値を指定する

- 探す範囲を指定する

- 照合の種類を指定

- 見つかった位置番号を返す

MATCH関数は値そのものを返さず、位置だけを返す関数である点が重要である。
INDEX関数とMATCH関数を組み合わせる仕組み

INDEX関数とMATCH関数は、単体では使いどころが限られるが、組み合わせることで真価を発揮する。この章では、なぜ2つの関数を一緒に使うのか、その仕組みを考え方ベースで解説する。
■なぜ2つの関数を組み合わせるのか
それぞれの関数には、次のような特徴がある。
- INDEX関数:位置が分からなければ使えない
- MATCH関数:位置は分かるが、値は取得できない
この弱点を補う形で、2つの関数を組み合わせると有効な活用ができる。
MATCH関数で位置を調べる→その位置をINDEX関数に渡す→INDEX関数が該当する値を返す
この役割分担を理解できれば、数式は自然と読み解けるようになる。
■INDEX関数とMATCH関数を組み合わせる基本構文
INDEX MATCHの基本構文は次のとおりである。この数式は、内側のMATCH関数から処理されると考えると理解しやすい。
=INDEX(値を取り出す範囲, MATCH(検索値, 検索範囲, 一致方法))
INDEX関数とMATCH関数を組み合わせる基本的な使い方
ここからは、実際の利用シーンを想定しながら、INDEX MATCHの基本的な使い方を確認する。
■縦方向のデータを検索する基本例
例として、下記のような表を想定する。

この表で「商品名から価格を取得したい」場合、考え方は次のとおりである。
- MATCH関数で商品名の行の位置を調べる

- INDEX関数で価格列から該当行の値を取得する

検索値や範囲を変更するだけで、他のデータにも使い回せる点が特徴である。
VLOOKUPとINDEX関数・MATCH関数の組み合わせの違い

INDEX MATCHが評価される理由を理解するには、VLOOKUPとの違いを知ることが近道である。この章では、実務で感じやすい差を中心に比較する。
■VLOOKUPで起こりがちな問題点
VLOOKUP関数には、次のような弱点がある。
- 列を追加すると列番号がずれる
- 左方向の検索ができない
- 表構造が変わると修正が必要
■INDEX関数・MATCH関数の組み合わせが実務向きと言われる理由
INDEX関数とMATCH関数の組み合わせは、次の点で実務に向いている。
- 列の位置に依存しない
- 左右どちらの検索も可能
- 表が成長しても壊れにくい







DIME MAGAZINE











