Excelでデータを検索する際に便利な関数のひとつが「MATCH関数」です。特に、VLOOKUPやINDEX関数と組み合わせることで、より柔軟なデータ取得が可能になります。
この記事では、MATCH関数の基本的な使い方から、実務で使える応用例まで、初心者の方にもわかりやすく解説します。
MATCH関数とは?
MATCH関数は、「指定した値が、範囲の中で何番目にあるか」を返す関数です。位置を特定するために使われ、値そのものを返すのではありません。
まずは、基本構造についてです。基本構造としては、下記の通りです。
構文:
=MATCH(検索値, 検索範囲, [照合の種類])
引数の説明:
- 検索値:探したい値
- 検索範囲:検索対象のセル範囲(1列または1行)
- 照合の種類:
- 1(もしくは省略した場合):近似一致(昇順に並んでいる必要あり)
- 0:完全一致
- -1:近似一致(降順に並んでいる必要あり)
MATCH関数の基本的な使い方
次に、具体的な使い方について見ていきましょう。
以下のような社員リストがあるとします。

この表で、たとえば「1002」という社員番号が何行目にあるかを調べたい場合、下記のように数式を作ることで調べることができます(A2セルを一番上として2番目にある、という結果)

INDEX関数と組み合わせて使う
MATCH関数は、解説した通り単体でも何番目にあるかを調べることができ、便利ですが「INDEX関数」と組み合わせることで、より実務的なデータ抽出が可能になります。
例:
先ほどと同じ表を使って、「社員番号1002の氏名を取得したい」場合。


この数式では、A列から「1002」の位置を探し、その位置に対応するB列の値(=鈴木)を返します。
この方法はVLOOKUP関数のように見えますが、列の並び順に制限がないため、VLOOKUPより柔軟な検索が可能です。
VLOOKUP関数で取得できない、検索値より左の値でも取得することが可能です。下記の動画も参考にしてみてください。
実務で使えるMATCH関数の応用例
それでは、より実務的な観点でMATCH関数について深堀りしていきたいと思います。
INDEX関数との組み合わせ
実務でよく使うパターンとしては、やはりINDEX関数との組み合わせです。検索値が右にあったとしても、普通にVLOOKUP関数の代わりとして使うことが可能です。
例えば下記のような表で、社員番号をキーとして部署を検索することをしたいとします。

INDEX関数で表の範囲を指定し、行の指定としてMATCH関数を使うことでVLOOKUP関数と同じ検索を実現することができます。


データ入力ミスの検知
たとえば、顧客名の一覧が別シートに登録されていて、検索値として入力された顧客名がその一覧にあるかをチェックする場合を想定します。

MATCH関数を使って下記のような数式を組めば、「TRUE」なら一覧に存在しており「FALSE」なら一覧に存在していないことになります。

MATCH関数を使う際の注意点
範囲は縦か横に揃える
MATCH関数の検索範囲は「1列」または「1行」でなければなりません。複数行・複数列の範囲は指定できません。
照合の種類は「0」が基本
実務では「完全一致(0)」を指定することがほとんどです。省略すると近似一致となり実務では使いずらいため、3つ目の引数は省略しないようにしましょう。
よくあるエラーと対処法
#N/Aエラー
検索値が範囲内に存在しない場合に表示されます。

もしこのエラーを出したくない場合はIFERROR関数を組み合わせましょう。

まとめ
