Excelを使っていて「特定の値がリストの何番目にあるかを調べたい」と思ったことはありませんか?そんなときに使える便利な関数が MATCH関数 です。
MATCH関数はそれ単体でも役立ちますが、INDEX関数と組み合わせることでVLOOKUPの代替としても大活躍します。本記事では、MATCH関数の使い方から実務での活用例、エラー対処、応用テクニックまでわかりやすく解説します。
1. はじめに:MATCH関数とは何か?
MATCH(マッチ)関数は、「指定した値が、範囲内のどの位置にあるか」を調べてくれる関数です。
たとえば、「Aさんが名簿の何番目にいるか」や「月名が何列目にあるか」など、「順番」や「位置」を取得したいときに使います。
MATCH関数は単体でも使えますが、INDEX関数と組み合わせることで、VLOOKUP関数よりも柔軟な検索処理が可能になります。
2. MATCH関数の基本構文と意味
=MATCH(検索値, 検索範囲, 照合の型)
| 引数 | 説明 |
| 検索値 | 探したい値(例:商品名や日付) |
| 検索範囲 | 探す対象の範囲(例:A1:A10などの1列または1行) |
| 照合の型 | 検索の方式(0:完全一致、1:以下の最大値、-1:以上の最小値) |
基本的には、0(完全一致)を使うのが安全です。
3. MATCH関数の使い方:基本パターン
● パターン1:列や行の中で位置を調べる
例)セルA1:A5に「田中、佐藤、鈴木、高橋、山田」が並んでいる場合、=MATCH("鈴木", A1:A5, 0) は 3 を返します。
● パターン2:表の中で項目の列番号を調べる
表の見出しがB1:F1にあり、「売上」「利益」「コスト」などの項目がある場合:
=MATCH("利益", B1:F1, 0)
→ 「利益」が3列目にあるなら、3が返されます。
4. どんな時に使うか?活用シーン
MATCH関数が役立つのは、以下のような場面です。
✅ データの「場所」を取得したいとき
・指定の文字や値が何行目/何列目にあるかを知りたい
✅ INDEX関数との連携で、柔軟な値検索
・行番号や列番号を自動取得し、検索結果を取得
✅ VLOOKUP関数の列番号を動的に
・列構成が変わっても壊れない検索式を作成できる
✅ 入力チェックや条件付き書式に
・「何番目にあるか」を使って条件分岐や判定が可能
5. 実践サンプル:MATCH関数の使いどころ
📌 例1:商品名の位置を取得
=MATCH("ペン", A1:A4, 0) → 結果:3
📌 例2:見出しから列番号を取得し、INDEXで値を取得
=MATCH("在庫", A1:C1, 0) → 結果:3
さらに
=INDEX(A2:C10, 1, MATCH("在庫", A1:C1, 0))
→ 「在庫」の列の1行目の値を取得(列構成が変わっても壊れない)
6. よくあるエラーとその対処法
❗ #N/A エラー
- 検索値が見つからなかったときに表示されます
- スペースの混入、全角半角ミス、表のソートミスを確認
❗ 近似一致(照合型=1または-1)の落とし穴
1や-1を使う場合、検索範囲が昇順や降順に並んでいないと誤動作します- よくわからなければ
0(完全一致)を使いましょう
7. MATCH関数と他関数の組み合わせ技
✅ INDEX + MATCH:VLOOKUPの上位互換!
=INDEX(B2:D5, MATCH("田中", A2:A5, 0), 2)
→ 「田中」に対応する行から、2列目の値を取得(柔軟な検索)
MATCHを使って列番号を自動化
=VLOOKUP(A2, A1:D100, MATCH("単価", A1:D1, 0), FALSE)
→ 見出しが移動しても壊れないVLOOKUP式に!
✅ INDIRECT関数と組み合わせて、動的な参照
=INDIRECT("B" & MATCH("鈴木", A2:A10, 0) + 1)
→ 「鈴木」に対応する行のB列の値を取得
8. MATCH関数の応用テクニック
🔸 条件付き書式で行や列を強調表示
MATCHで該当位置を調べ、条件に合うセルを強調する
🔸 ワイルドカードと組み合わせ
検索値に "*山田*" などを使うことで部分一致検索も可能(ただしMATCH単体ではなくCOUNTIFや他関数との併用が必要)
🔸 入力値の検証・重複チェックに応用
MATCHが#N/Aを返すかどうかで入力の妥当性を判定
9. まとめ:MATCH関数を使いこなすと何ができるか?
MATCH関数は単体でも便利ですが、他の関数(特にINDEX関数)と組み合わせることで真価を発揮します。VLOOKUPよりも柔軟で、列の構成変更にも強い処理が可能です。
- シンプルな「検索位置の取得」から
- INDEX関数との連携による柔軟なデータ参照
- ワイルドカードや条件付き書式との応用まで
Excelでの作業効率を上げたいなら、ぜひMATCH関数をマスターしておきましょう!
