ExcelのXMATCH関数とは?MATCHとの違いから実務で使える活用例まで徹底解説

Excelでデータ検索といえば、長年「MATCH関数」が定番でした。しかし、Microsoft 365やExcel 2021以降では、より高機能で柔軟な「XMATCH関数」が登場しています。XMATCH関数は、検索方向の指定やエラー処理の簡略化など、従来のMATCH関数では難しかった点を大きく改善した関数です。本記事では、XMATCH関数の基本的な使い方から、MATCH関数との違い、実務で役立つ具体的な使用例までをわかりやすく解説します。これからのExcel作業を効率化したい方は、ぜひ参考にしてください。


XMATCH関数とは何か

XMATCH関数は、指定した値が配列や範囲の中で「何番目に位置しているか」を返す検索関数です。基本的な役割はMATCH関数と同じですが、より直感的で柔軟な指定ができる点が特徴です。
特に、検索方法や検索方向を引数で明確に指定できるため、意図しない検索結果を防ぎやすくなっています。

XMATCH関数は次のような場面で活躍します。
・一覧表から特定の値の位置を知りたいとき
・XLOOKUP関数と組み合わせて高度な検索を行いたいとき
・昇順、降順を問わず正確に検索したいとき

従来のMATCH関数に慣れている人ほど、その進化を実感できる関数といえるでしょう。


XMATCH関数の基本構文と引数

XMATCH関数の基本構文は次のとおりです。

XMATCH(検索値, 検索範囲, [一致モード], [検索モード])

それぞれの引数の意味は以下のとおりです。

検索値は、探したい値を指定します。数値、文字列、セル参照のいずれも使用できます。

検索範囲は、検索を行う配列やセル範囲を指定します。縦一列、または横一行の範囲が基本です。

一致モードは、省略可能な引数で、検索値との一致条件を指定します。完全一致だけでなく、近似一致も明示的に指定できます。

検索モードは、省略可能な引数で、検索方向や特殊な検索方法を指定します。先頭から検索するか、末尾から検索するかを指定できる点が特徴です。

引数が増えた分、最初は難しく感じるかもしれませんが、慣れると意図した検索結果を安定して得られるようになります。


MATCH関数との違い

XMATCH関数とMATCH関数の最大の違いは「検索方法の指定が明確になったこと」です。
MATCH関数では、検索方法を数値で指定する必要があり、意味を覚えていないと誤用しやすいという欠点がありました。

XMATCH関数では、完全一致や近似一致を論理的に指定できるため、読みやすく、他人が見ても理解しやすい数式になります。
また、MATCH関数ではできなかった「後ろから検索する」という指定も、XMATCH関数なら簡単に行えます。

さらに、MATCH関数では昇順・降順の制約が厳しかったのに対し、XMATCH関数はその制約が緩和されています。
このため、実務データのように並び順が一定でない表でも、安心して利用できます。


XMATCH関数の一致モードの使い分け

XMATCH関数では、一致モードを指定することで検索の挙動を細かく制御できます。

完全一致を指定すれば、検索値と完全に一致する値のみを探します。
部分一致や近似一致を使うことで、「指定した値以上」「指定した値以下」といった条件検索も可能です。

例えば、点数表から合格ラインを超えた最初の位置を探したい場合などに、近似一致は非常に便利です。
一致モードを明示的に指定することで、意図しない検索結果を防げる点も、XMATCH関数の大きなメリットです。


検索モードで広がるXMATCHの活用範囲

XMATCH関数の大きな特徴のひとつが、検索モードの指定です。

通常の検索では、範囲の先頭から順に検索しますが、検索モードを指定することで末尾から検索することもできます。
これにより、「最新データを取得したい」「最後に出てくる値を探したい」といったニーズにも対応できます。

また、二分探索を指定することで、大量データでも高速に検索できるケースがあります。
ただし、二分探索を使う場合は、データが昇順または降順に並んでいる必要があるため、使用時には注意が必要です。


XLOOKUP関数との組み合わせ例

XMATCH関数は、XLOOKUP関数と組み合わせることで真価を発揮します。
XLOOKUP関数単体でも検索は可能ですが、位置情報が必要な場合にはXMATCH関数が役立ちます。

例えば、特定の条件に合致する列番号や行番号を取得し、それを別の計算に利用するといった高度な使い方が可能です。
これにより、VLOOKUP関数やHLOOKUP関数では難しかった柔軟な検索処理を実現できます。


実務で役立つXMATCH関数の使用例

実務では、商品一覧や顧客リスト、売上データなど、さまざまな表でXMATCH関数が活躍します。

商品コードから該当商品の行番号を取得し、その行をもとに別の計算を行うケース。
月別データの中から、最新月の位置を取得して集計に使うケース。

このように、単なる検索だけでなく「データ処理の起点」として使える点が、XMATCH関数の強みです。


使用例①:完全一致で位置を取得する(基本)

ダミーデータ(商品一覧)

A列(商品ID)B列(商品名)
A001りんご
A002みかん
A003ばなな
A004ぶどう

目的

商品ID 「A003」 が、上から何番目にあるかを調べたい。

数式

=XMATCH("A003", A2:A5)

結果

3

使用例②:セル参照を使った検索

D列
A004

数式

=XMATCH(D1, A2:A5)

ポイント

  • 検索値を直接書かず、セル参照にすることで
  • 検索条件を変えるだけで再利用可能

使用例③:末尾から検索する(最新データを取得)

売上履歴

A列(日付)B列(売上)
2024/01/01100
2024/01/02150
2024/01/03120
2024/01/02180

目的

「2024/01/02」最後に出てくる位置を調べたい。

数式(検索モードを指定)

=XMATCH(DATE(2024,1,2), A2:A5, 0, -1)

結果

4

👉 後ろから検索することで、最新の該当データを取得できます。


使用例④:近似一致(以上・以下)で検索する

点数表:昇順

A列(点数)
40
60
70
85
95

目的

80点以上に最初に該当する位置を調べたい。

数式(以上を指定)

=XMATCH(80, A2:A6, 1)

結果

4

👉 85点が最初に80点以上なので、4番目


使用例⑤:XLOOKUPと組み合わせる(実務で超重要)

社員名簿

A列(社員ID)B列(氏名)C列(部署)
101佐藤営業
102鈴木総務
103高橋開発
104田中営業

目的

社員ID 103 の「部署」を取得したい。

手順①:XMATCHで行番号を取得

=XMATCH(103, A2:A5)

👉 結果:3

手順②:INDEXと組み合わせる

=INDEX(C2:C5, XMATCH(103, A2:A5))

結果

開発

👉 VLOOKUP不要で柔軟な検索が可能。


使用例⑥:エラーを防ぐ(IFERRORと併用)

数式

=IFERROR(XMATCH("A999", A2:A5), "該当なし")

結果

該当なし

👉 存在しないデータでも、エラー表示を防止できます。

XMATCH関数を使う際の注意点

XMATCH関数は非常に便利ですが、使用する際にはいくつか注意点があります。

検索範囲は、必ず一行または一列に限定する必要があります。
また、古いExcelバージョンでは使用できないため、ファイルの共有先の環境にも配慮が必要です。

MATCH関数との互換性を意識する場合は、使用前にバージョン確認を行うと安心です。


まとめ

XMATCH関数は、従来のMATCH関数を大きく進化させた、現代のExcelに欠かせない検索関数です。
一致モードや検索モードを明示的に指定できるため、数式の可読性と安全性が向上します。
特に、XLOOKUP関数と組み合わせることで、複雑な検索処理もシンプルに実現できます。

これからExcelを使ったデータ処理を効率化したい方は、ぜひXMATCH関数を積極的に活用してみてください。

タイトルとURLをコピーしました