エクセルやGoogleスプレッドシートでデータを検索する際に役立つのが「MATCH関数」です。MATCH関数は、指定した値が範囲内のどの位置にあるかを調べる関数で、特にINDEX関数と組み合わせることで強力な検索ツールになります。本記事では、MATCH関数の基本的な使い方から、複数条件での応用、VLOOKUP関数との違い、さらに実際の活用例まで、初心者にもわかりやすく解説します。
MATCH関数とは?基本の使い方
MATCH関数は、指定した範囲の中で特定の値がどの位置にあるかを返す関数です。
MATCH関数の基本構文
=MATCH(検索値, 検索範囲, 照合の種類)
- 検索値:探したい値
- 検索範囲:検索対象となるセル範囲
- 照合の種類:0(完全一致)、1(以下の最大値)、-1(以上の最小値)
基本的な使用例
例えば、以下の表で「バナナ」が何番目にあるかを調べる場合。
A列 |
---|
りんご |
バナナ |
みかん |
ぶどう |
以下のように入力します。
=MATCH("バナナ", A1:A4, 0)
結果として、2が返されます。(バナナが2番目にあるため)
また、MATCH関数は列でも行でも検索可能なので、柔軟にデータ検索ができるのが特徴です。
MATCH関数の照合の種類と違い
MATCH関数を活用する際、正しい検索結果を得るためには「照合の種類」の理解が欠かせません。
照合の種類には 「完全一致(0)」「以下の最大値(1)」「以上の最小値(-1)」 の3つがあり、それぞれ用途が異なります。
ここでは、それぞれの照合方法の仕組みや具体的な使用例を詳しく解説します。
1. 完全一致(0) – 指定した値と完全に一致するセルを検索する
完全一致(0)は、検索範囲内で指定した値と まったく同じデータ を検索したい場合に使用します。
このオプションを使うと、リストの中から特定の値が 何番目にあるのか を正確に取得できます。
構文
excelコピーする編集する=MATCH(検索値, 検索範囲, 0)
使用例
商品リストの中から「りんご」が何番目にあるか検索
A列 |
---|
バナナ |
りんご |
みかん |
ぶどう |
excelコピーする編集する=MATCH("りんご", A1:A4, 0)
結果: 2
(「りんご」は2番目にある)
ポイント
- 完全一致のデータがない場合は「#N/Aエラー」 が発生する。
- 文字列検索も可能だが、大文字・小文字は区別されない。(例:「Apple」と「apple」は同じと認識される)
- 「ID検索」や「顧客データの検索」など、特定の値を確実に見つける場面で役立つ。
2. 以下の最大値(1) – 昇順リストで「指定値以下の最大値」を探す
照合の種類「1」を指定すると、検索範囲内で 指定した値以下の最大値 の位置を返します。
この方法は、 昇順(小さい順)に並んだリスト でのみ有効です。
構文
excelコピーする編集する=MATCH(検索値, 検索範囲, 1)
使用例
年齢ごとの適用料金を検索
A列 | B列 |
---|---|
10 | 500円 |
20 | 700円 |
30 | 900円 |
40 | 1200円 |
excelコピーする編集する=MATCH(25, A1:A4, 1)
結果: 2
(25歳は20の行に適用される)
ポイント
- リストが昇順であることが必須(昇順でない場合、誤った結果を返す)。
- 検索値 「ぴったりの値」がない場合、一番近い小さい値の位置を返す。
- 「価格表」「割引率」「累進税率」など、範囲に応じたデータ取得に便利。
3. 以上の最小値(-1) – 降順リストで「指定値以上の最小値」を探す
照合の種類「-1」を指定すると、検索範囲内で 指定した値以上の最小値 の位置を返します。
この方法は、 降順(大きい順)に並んだリスト でのみ有効です。
構文
excelコピーする編集する=MATCH(検索値, 検索範囲, -1)
使用例
社員のランキングデータから適用ランクを取得
A列 | B列 |
---|---|
1000 | ゴールド |
800 | シルバー |
500 | ブロンズ |
300 | レギュラー |
excelコピーする編集する=MATCH(600, A1:A4, -1)
結果: 3
(600ポイントは「ブロンズ」に該当)
ポイント
- リストが降順であることが必須(降順でない場合、誤った結果を返す)。
- 検索値 「ぴったりの値」がない場合、一番近い大きい値の位置を返す。
- 「ランキング」「等級」「優待クラス」など、降順でデータを管理している場合に便利。
4. どの照合の種類を使うべき?用途別の選び方
照合の種類 | 目的 | 条件 | 使用例 |
---|---|---|---|
完全一致(0) | 指定のデータがリスト内にあるか確認 | データが不規則・ID検索 | 商品リスト、顧客ID検索 |
以下の最大値(1) | 指定値以下の最大値を取得 | リストが昇順 | 年齢別料金、累進税率 |
以上の最小値(-1) | 指定値以上の最小値を取得 | リストが降順 | 社員ランク、ポイント適用 |
MATCH関数をINDEX関数と組み合わせる
MATCH関数は、INDEX関数と組み合わせることで、VLOOKUP関数では実現できない柔軟な検索が可能になります。
INDEX+MATCHの構文
=INDEX(検索範囲, MATCH(検索値, 検索範囲, 0))
この組み合わせにより、表の縦横両方からデータを検索することができます。
MATCH関数とVLOOKUP関数の違い
MATCH関数とVLOOKUP関数はどちらも検索機能を持ちますが、大きな違いがあります。
項目 | MATCH関数 | VLOOKUP関数 |
検索範囲の方向 | 縦・横どちらでもOK | 縦方向のみ |
返す値の位置 | 指定可能 | 常に右側 |
複数条件 | 可能 | 不可 |
MATCH関数はINDEX関数と組み合わせることで、より柔軟な検索が可能です。
MATCH関数の複数条件検索
MATCH関数は単体では複数条件の検索ができませんが、MATCH
とINDEX
を組み合わせることで、複数の条件でデータを取得できます。
例:2つの条件で検索
=INDEX(B2:B10, MATCH(1, (A2:A10=条件1)*(C2:C10=条件2), 0))
このようにMATCH
関数を論理式と組み合わせることで、複数条件に対応できます。
MATCH関数の照合の種類に関するよくある質問
Q1. 「#N/Aエラー」が出るのはなぜ?
A: 「#N/Aエラー」は、指定した検索値が見つからなかった場合に発生します。
- 完全一致(0)で検索値がリストに存在しない。
- 以下の最大値(1)または以上の最小値(-1)でリストが正しく並んでいない。
解決策:
- 完全一致の場合 →
IFERROR()
関数を使ってエラー回避excelコピーする編集する=IFERROR(MATCH("対象値", A1:A10, 0), "見つかりません")
- データの並び順を確認(昇順または降順になっているか)
まとめ
MATCH関数は、エクセルやGoogleスプレッドシートで強力な検索機能を提供する便利な関数です。特にINDEX関数と組み合わせることで、VLOOKUP関数以上の柔軟な検索が可能になります。本記事では、基本的な使い方から複数条件での応用、VLOOKUP関数との違いについて解説しました。実際の業務で活用し、作業効率を向上させましょう。