
「指定した値がどの行や列にあるか知りたい」
「VLOOKUPでは柔軟な検索ができない…」
そんなときに役立つのが MATCH関数 です。
MATCH関数は、特定の値が配列の中で何番目にあるかを返す関数で、INDEX関数と組み合わせることで柔軟な検索が可能になります。
この記事では、MATCH関数の基本構文から使い方、INDEXとの連携、実務での応用パターンまでをわかりやすく解説します。
目次
MATCH関数とは?
- 読み方:マッチ関数
- 用途:指定した値が配列の中の何番目にあるかを調べる関数
構文
=MATCH(検索値, 検索範囲, [照合の型])
引数 | 説明 |
---|---|
検索値 | 探したい値(セルや文字列) |
検索範囲 | 一列または一行のセル範囲 |
照合の型(省略可) | 0=完全一致(推奨)、1=以下の最大値、-1=以上の最小値 |
基本的な使い方
例1:名前の位置を調べる

=MATCH("佐藤", A2:A6, 0)
→ A列から「佐藤」を検索 → 3番目にある → 結果:3
例2:列見出しの位置を取得
=MATCH("スコア", A1:D1, 0)
→ ヘッダー行から「スコア」の列番号を取得 → 結果:3
INDEX関数との組み合わせ(実用例)
例3:氏名に対応するスコアを取得
=INDEX(C2:C6, MATCH("田中", A2:A6, 0))
→ 「田中」をA列から探し、対応するC列(スコア)を返す
VLOOKUPとの違い
比較項目 | VLOOKUP関数 | INDEX+MATCH関数 |
---|---|---|
検索方向 | 左→右のみ | 左右どちらでも可能 |
検索結果の対象 | 固定列番号 | MATCHで動的に取得可能 |
安定性 | 列の追加・削除に弱い | 柔軟に対応できる |
応用パターン
1. 複数の候補から最初に一致した行を取得

=MATCH("高橋", A2:A6, 0)
→ 高橋がリスト内で何番目にあるかを取得
2. 行番号だけを返すために他関数に組み込む
=IF(MATCH(F2, A2:A6, 0)>0, "存在", "なし")
→ F2の値がA列にあれば「存在」と表示
よくある注意点と対策
注意点 | 解説 |
---|---|
部分一致はできない(完全一致推奨) | 照合の型 は常に 0 を使用するのが無難 |
検索範囲は一列 or 一行のみ | 複数列・複数行を指定するとエラーになる |
大文字・小文字は区別されない | 「Tanaka」も「tanaka」も一致と判定される |
まとめ|MATCH関数で位置情報を活用しよう
MATCH関数は、セルの位置を検索して取得するための基本的かつ強力な関数です。
- 値の位置を取得し、INDEX関数と連携して柔軟な検索処理が可能
- VLOOKUPよりも自由度が高く、構造変化にも強い
- 実務では「列の特定」や「動的な表参照」に活用できる
検索処理を安定・高速にしたいなら、MATCH関数をぜひマスターしましょう。
関連リンク
- 【解説】ExcelのINDEX関数とは?行と列で値を取り出す方法
- 【解説】ExcelのVLOOKUP関数とは?縦方向の検索処理と使い方
- 【解説】ExcelのXLOOKUP関数とは?VLOOKUPの進化版で柔軟な検索を実現
- Excel関数一覧|よく使う関数まとめ
コメント