表の中から「特定の値が何番目にあるか」を知りたいときに便利なのが MATCH関数 です。INDEX関数と組み合わせて使うことで、柔軟な検索・抽出が可能になります。
この記事では、MATCH関数の基本的な使い方から、INDEX関数との連携、活用例までをわかりやすく紹介します。
MATCH関数とは?
MATCH関数は、指定した値が範囲の中で何番目にあるか(位置)を返す関数です。
書式
=MATCH(検索値, 検索範囲, [照合の型])
引数の意味
- 検索値:探したい値
- 検索範囲:検索対象のセル範囲(縦または横一列)
- 照合の型(省略可):検索方法を指定
- 0:完全一致(おすすめ)
- 1:以下の最大値(昇順で並んでいる必要あり)
- -1:以上の最小値(降順で並んでいる必要あり)
基本的な使い方
例 1:名前の位置を探す
A列(名前) |
---|
佐藤 |
鈴木 |
高橋 |
=MATCH("鈴木", A2:A4, 0) → 2
→ 鈴木は範囲内の2番目にあるので「2」を返します。
例 2:得点が何番目にあるか(数値)
=MATCH(90, B2:B5, 0)
→ 90点が何番目にあるかを返す
INDEX関数との連携
MATCH関数は単体でも使えますが、INDEX関数と組み合わせると強力です。
例:科目名に対応する点数を取得
A列 | B列 | C列 |
国語 | 数学 | 英語 |
80 | 90 | 70 |
=INDEX(A2:C2, MATCH("数学", A1:C1, 0)) → 90
→ 「数学」が見つかった位置(2列目)をもとにINDEXで値(90)を取り出す
よくある活用例
1. 行番号や列番号を動的に取得
=MATCH("商品B", A2:A10, 0)
→ 「商品B」が何行目にあるかを取得し、別の計算に利用
2. 見出しの位置を特定
=MATCH("合計", B1:F1, 0)
→ 見出し行から「合計」の列番号を取得
注意点
- 照合の型は「0(完全一致)」が基本的に安全
- 縦か横の一方向に並んでいる範囲で使うこと(2次元では使えない)
- 見つからない場合はエラー(#N/A)が返る
まとめ
MATCH関数は、検索値が「どの位置にあるか」を調べるのに最適な関数です。単体でも便利ですが、特にINDEX関数と組み合わせることで、柔軟な検索・抽出が可能になります。VLOOKUPではできないような柔軟な検索をしたい人には、MATCH+INDEXの組み合わせが強力な武器になります!