ExcelのMATCH関数は、指定した値がセル範囲の中で「何番目」にあるかを返す便利な関数です。INDEX関数などと組み合わせることで、柔軟で正確なデータ検索が可能になります。
本記事では、MATCH関数の基本構文から使い方、照合の型による違い、応用テクニックや注意点、他関数との比較を見ていきましょう。
ExcelのMATCH関数とは
ExcelのMATCH関数は、指定したセル範囲の中から特定の値を検索し、その値が「何番目」に位置しているかを返す関数です。
たとえば、商品名の一覧から「バナナ」が何行目にあるかを調べるといった用途で活用されます。MATCH関数の特徴は、検索結果としてデータそのものではなく「位置」を返す点です。
基本構文は以下の通りです。
MATCH関数は、INDEX関数などと組み合わせて使用することで、より柔軟で効率的なデータ抽出や検索が可能になるでしょう。
ExcelのMATCH関数の引数や照合型とは
MATCH関数は、Excelで「ある値が範囲内のどの位置にあるか」を調べたいときに使用する関数です。返されるのは、値そのものではなく、該当するセルが範囲内で何番目にあるかという「相対的な位置」です。
ここでは基本的な引数などを見ていきましょう。
引数の詳細(検索値・検索範囲・照合の型)
MATCH関数は3つの引数を使って構成されており、それぞれの意味を正しく理解することで、より精度の高い検索が可能になります。特に「検索値」「検索範囲」は必須項目であり、「照合の型」は検索方法を指定する重要なオプションです。
以下の表に引数をまとめました。
引数 | 内容 |
---|---|
検索値 | 探したい値。直接入力またはセル参照で指定します。 |
検索範囲 | 検索対象となる1行または1列のセル範囲。複数行・複数列は指定不可です。 |
照合の型 | どのように一致させるかを指定する数値(0, 1, -1)。省略時は「1」扱い。 |
検索値と検索範囲は必ず指定する必要がありますが、照合の型は省略可能です。
照合の型「0」「1」「-1」の違い
MATCH関数では、検索方法を「照合の型」で指定することができます。
以下の表にそれぞれの違いをまとめました。
照合の型 | 意味 | 使用条件 |
---|---|---|
0 | 完全一致を検索する | データの並び順に関係なく使える |
1 | 検索値以下の最大値を検索 | 検索範囲が昇順(小さい順)に並んでいる必要がある |
-1 | 検索値以上の最小値を検索 | 検索範囲が降順(大きい順)に並んでいる必要がある |
通常は「0(完全一致)」を使うことが多く、検索値と完全に一致するセルのみを対象にします。
照合の型を適切に選ぶことが、正確なデータ取得の鍵となるでしょう。
ExcelのMATCH関数の基本的な使い方
MATCH関数は、特定の値がどこにあるかを範囲の中から検索し、その位置を返す関数です。
ここでは、縦方向・横方向での検索や、ワイルドカードを使ったあいまい検索など、実務でもよく使われる基本的な使い方について解説します
基本の検索
MATCH関数は、並んだリストの中から指定した値が何番目にあるかを調べる場面でよく使われます。たとえば、商品名リストの中から「りんご」が何行目にあるかを調べたいときに役立ちます。
手順は以下の通りです。
- =MATCH( と入力する
- 検索値(例:「りんご」)、検索範囲(縦方向のリスト)、照合の型(通常は0)を指定する
- 括弧を閉じて Enter キーを押す
「りんご」がその範囲の中で上から何番目にあるかを数値で返してくれます。
ワイルドカードを使ったあいまい検索
MATCH関数は、完全一致のほかにワイルドカードを使った「部分一致」の検索にも対応しています。たとえば、「田中」という名前を含むセルを「田中*」や「*郎」のような形式で検索できます。
ワイルドカードには「*(任意の文字列)」や「?(任意の1文字)」が使用でき、表記が曖昧なデータを探したい場合に非常に便利です。完全に一致しなくても近い情報を柔軟に検索できるのです。
手順は以下の通りです。
- =MATCH(“*一郎”, C2:C6, 0) と指定する(※C列は生産者列)
- Enterキーを押すと「2」が返る(=佐藤一郎が2行目)
MATCH関数の**第3引数(照合の型)には必ず「0(完全一致)」**を指定してください。また、検索値には必ずダブルクォーテーション(”)で囲んだ文字列を使いましょう。
INDEX関数と組み合わせて作物名を取得する
該当の生産者が作った作物名を取得したい場合は、MATCHとINDEXを組み合わせます。
MATCH関数とINDEX関数の違いに戸惑う方も多いかもしれませんが、MATCH関数が条件にあったセルの”位置”を返す関数であるのに対し、INDEX関数は該当セルの”値”を返す関数です。組み合わせることで以下のように処理できます。
- MATCH(“*一郎”, C2:C6, 0) によって「一郎」が含まれる最初の行(この場合は2行目)を取得
- INDEX(B2:B6, 2) によって、その行の「作物名」列から「もも」を取得
このように、ワイルドカードとMATCH関数を組み合わせることで、部分一致の検索が可能になります。名前や型番、品種名など、表記に揺れがあるデータに対しても正確に検索できるため、業務におけるデータ確認や抽出に非常に役立ちます。
このようなExcelのMATCH関数を含む基本操作や関数の使い方を、短期間でしっかりと身につけたい方には、「Excel基礎セミナー講習」がおすすめです。
講座は、関数、グラフ、データ管理、マクロ、ピボットテーブルなど幅広い内容を網羅しています。また、復習用の教材(PDF229ページ)も提供されるため、受講後も継続的な学習ができます。
セミナー名 Excel基礎セミナー講習 運営元 GETT Proskill(ゲット プロスキル) 価格(税込) 27,500円〜 開催期間 2日間 受講形式 対面(東京・名古屋・大阪)・ライブウェビナー・eラーニング
複数条件に対応したExcelのMATCH関数の応用
MATCH関数は通常、1つの検索条件に対して範囲内の位置を返す単純な動作をしますが、複数の条件を組み合わせて位置を特定したい場合にも応用が可能です。そのためには、配列数式や、条件を結合するテクニックを用いる必要があります。
複数条件による検索は、より正確にデータを抽出したいときに非常に役立つでしょう。
代表的な複数条件の設定方法は以下の通りです。
方法 | どんなときに使うとよい? | 使い方のイメージ(数式) | わかりやすいポイント |
---|---|---|---|
配列の計算で探す | 2つの条件が別々の列にあるときに、どちらも満たす行を探したい | =MATCH(1, (A2:A6=”田中”)*(B2:B6=”りんご”), 0) | 「A列が田中」かつ「B列がりんご」の両方が一致する行を探す方法 |
FILTERと組み合わせ | 特定の条件でデータをしぼってから探したいとき(新しいExcel限定) | =MATCH(“りんご”, FILTER(B2:B6, A2:A6=”田中”), 0) | まずA列が田中の行だけを表示して、そこからりんごを探す方法 |
ヘルパー列を使う | 関数が苦手な人や、できるだけかんたんにしたいとき | C列に =A2&B2 → =MATCH(“田中りんご”, C2:C6, 0) | A列とB列をつなげた列を作って、MATCH関数で1条件だけで探す |
TEXTJOINで結合 | 入力する人が複数条件をセルで入力できるようにしたいとき | =MATCH(TEXTJOIN(“”, TRUE, F1:G1), A2:A6&B2:B6, 0) | ユーザーがF1に「田中」、G1に「りんご」と入力すれば検索できる |
旧バージョンのExcel(Excel 2016以前)では、配列数式を正しく動作させるために、Enterキーではなく「Ctrl + Shift + Enter」を押して数式を入力する必要がありますのでお気を付けください。
応用により、実務でのデータ抽出やチェック作業が格段に効率化されるでしょう。
MATCH関数を含むExcelの活用スキルをさらに深めたい方には、DX Excel無料資料をおすすめします。無料ですが実務に直結するExcelテンプレートやノウハウ資料が無料で提供されており、特に業務効率化やデータ整理・分析を目的とした内容が充実しています。MATCH関数や他の検索・参照関数を使った応用にも役立つ内容が含まれており、「学んだ知識をすぐに業務に活かしたい」という方に最適です。
ExcelのMATCH関数の注意点とエラー対策
MATCH関数は非常に便利な関数ですが、使い方を誤ると意図しない結果が返されたり、エラーが発生したりします。特に検索範囲や照合の型の指定ミスがよくある原因です。MATCH関数を正しく使うためには、いくつかの注意点を押さえておく必要があります。
よくある注意点とその対策は以下の通りです。
注意点・エラー内容 | 原因または対策 | 具体例 |
---|---|---|
検索範囲が複数列・複数行になっている | MATCH関数の検索範囲は1列または1行に限定されており、複数行×複数列の範囲(例:A1:C10)を指定するとエラーになる | =MATCH(“田中”, A1:C10, 0) → NG =MATCH(“田中”, A1:A10, 0) → OK |
照合の型を省略して意図しない一致が起こる | 照合の型を省略するとExcelは自動的に「1(近似一致)」として扱う。完全一致で検索したい場合は、「0」を指定 | =MATCH(50, A1:A10) → 値が50でなくても「50以下の最大値」が返る =MATCH(50, A1:A10, 0) → 完全一致 |
#N/A エラーが返される | 指定した検索値が検索範囲に存在しない場合、MATCH関数は #N/A エラーを返す。IFERROR関数などでエラー処理を行うと安心 | =MATCH(“山田”, A1:A5, 0) → #N/A =IFERROR(MATCH(“山田”, A1:A5, 0), “見つかりません”) |
検索範囲が昇順・降順になっていない | 照合の型を「1」または「-1」に設定する場合は、検索範囲がそれぞれ昇順または降順に並んでいる必要あり | =MATCH(40, A1:A5, 1) → 範囲が昇順でなければ正しい値が返らない ※昇順例:10, 20, 30, 40, 50 |
完全一致(照合の型=0)を使う際は、検索値がデータ内に正確に存在しているかどうかの確認が重要です。
関数が反映されないなどのエラーを知りたい方は、下記をご覧ください。
ExcelのMATCH関数と他の関数
MATCH関数はそれ単体でも便利ですが、他の関数と組み合わせることで真価を発揮します。特にデータの検索・抽出に関わる関数との連携は、実務において非常に役立ちます。
代表的な組み合わせとその特徴は以下の通りです。
組み合わせ関数 | 特徴・用途 | 使用例 |
---|---|---|
INDEX関数 | MATCHで得た位置を使って、該当する値を抽出。柔軟な行列指定が可能 | =INDEX(B2:B6, MATCH(“田中”, A2:A6, 0)) → A列にある「田中」の行のB列の値を取得する |
VLOOKUP関数 | MATCHを使って列番号を動的に設定することで、より柔軟な検索が可能 | =VLOOKUP(“売上”, A1:D5, MATCH(“3月”, A1:D1, 0), FALSE) → 見出し「3月」の列番号を取得し、売上データを検索 |
HLOOKUP関数 | 横方向のデータ検索に対応。MATCHで行番号を動的に指定する場面で使える | =HLOOKUP(“商品A”, A1:F3, MATCH(“単価”, A1:A3, 0), FALSE) → 「単価」が何行目かを特定し、商品Aの値を取得 |
XMATCH関数 | MATCHの上位互換。部分一致、逆方向検索などが可能で、より高機能かつ柔軟 | =XMATCH(“田中”, A2:A6, 0, -1) → 「田中」を下から上に向かって検索し、その位置を取得 |
OFFSET関数 | MATCHで取得した位置を元に、基準セルからの相対位置でセル参照を作ることが可能 | =OFFSET(A1, MATCH(“田中”, A2:A6, 0), 1) → 「田中」の位置から1列右の値を取得 |
CHOOSE関数 | MATCHの結果をもとに、複数の選択肢から動的に値を返すことができる | =CHOOSE(MATCH(“B”, {“A”,”B”,”C”}, 0), “リンゴ”, “バナナ”, “みかん”) → “B”に一致する2番目の果物「バナナ」を返す |
INDEX+MATCH×2 | 2次元(行と列)両方の位置をMATCHで取得してINDEXに渡すことで表から値を抽出 | =INDEX(B2:D5, MATCH(“田中”, A2:A5, 0), MATCH(“4月”, B1:D1, 0)) → 「田中」と「4月」が交差する値を取得 |
IF関数との併用 | MATCH結果を条件分岐に利用し、存在確認や分岐処理が可能 | =IF(ISNUMBER(MATCH(“田中”, A2:A6, 0)), “存在する”, “存在しない”) → 「田中」が存在するかどうかを返す |
MATCH + COUNTIF | データの有無を確認してから検索することで、#N/Aエラーの予防ができる | =IF(COUNTIF(A2:A6,”田中”)>0, MATCH(“田中”, A2:A6, 0), “データなし”) → 存在チェックをしてからMATCHを実行 |
MATCH + INDIRECT | MATCHで取得した位置を間接参照でセルアドレスに変換し、柔軟なセル取得が可能 | =INDIRECT(“B” & MATCH(“田中”, A2:A6, 0) + 1) → A列の「田中」がある行のB列セルを動的に参照 |
MATCH関数は「位置」を返すという特性上、他の関数の引数に組み込むことで、その力を最大限に発揮します。使いこなすことで、Excelでのデータ処理の自由度が大きく広がるでしょう。
その他の関数を知りたい方は、下記をご覧ください。
ExcelのMATCH関数まとめ
ExcelのMATCH関数は、単独でも「データの位置を特定する」という明確な役割を持ち、非常に有用な関数です。しかし、INDEX関数や他の検索系関数と組み合わせることでの柔軟性と実用性は飛躍的に高まるでしょう。
検索の精度を上げたい、表の構造が変わっても自動で対応したい、というニーズがある場合には、MATCH関数の理解と活用が必須です。
基本から応用までしっかり押さえておくことで、日々の業務効率やデータ処理の質が大きく向上するでしょう。
