XMATCH関数 – 検索値の位置を柔軟に検索する関数
1. 使い方と活用例
XMATCH関数は、指定した値が範囲または配列内のどの位置にあるかを検索して返す関数です。
MATCH関数の強化版として位置付けられ、検索の方向や一致の種類、近似値の指定など、より柔軟で高速な検索が可能です。
行方向・列方向どちらにも対応し、スピルや動的配列との連携にも適しています。
2. 基本の書式
=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
3. 引数の説明
- lookup_value – 検索したい値を指定します。
- lookup_array – 検索対象となる配列または範囲を指定します。
- [match_mode] – 一致の種類を指定します。
・0(完全一致、デフォルト)
・-1(以下の最大値)
・1(以上の最小値)
・2(ワイルドカード一致) - [search_mode] – 検索の方向を指定します。
・1(先頭から検索、デフォルト)
・-1(末尾から検索)
・2(二分探索(昇順ソート済み))
・-2(二分探索(降順ソート済み))
4. 使用シーン
・テーブル内で特定の値が何番目にあるかを調べたいとき。
・ワイルドカードを用いて柔軟な一致検索をしたいとき。
・検索方向を指定して最新または最古のデータを探すような場面でも活躍します。
5. 応用のポイント
XMATCH関数はXLOOKUP関数と組み合わせると、検索結果の位置をもとに別のデータを参照することが可能になります。
MATCH関数では実現が難しかった柔軟な検索(末尾からの検索やワイルドカード一致など)が、XMATCHではシンプルに行えます。
INDEX関数と組み合わせて「動的な値取得」を行う際にも非常に有効です。
6. 具体例とその解説
=XMATCH("バナナ", A2:A10)
この式は、A2:A10の範囲内で「バナナ」が何番目にあるかを検索します。完全一致で最初に見つかった位置を返します。
=XMATCH(100, B2:B10, -1)
この式は、B2:B10が昇順に並んでいる前提で、100以下の最大値の位置を返します。
範囲内で100以下の中で最も近い値を検索したい場合に使えます。
=XMATCH("りん*", A2:A10, 2)
この式では、ワイルドカード「*」を使って「りん」で始まる値を検索します。
match_modeに「2」を指定することで、ワイルドカード一致が有効になります。
7. 関連関数の紹介
- MATCH関数 – 指定した値が配列の何番目にあるかを返す基本的な検索関数
- XLOOKUP関数 – 水平方向・垂直方向どちらにも対応した柔軟な検索関数
- INDEX関数 – 指定した行番号・列番号にあるセルの値を返す関数
- FILTER関数 – 条件に合致した値のみを抽出する関数
8. まとめ
XMATCH関数は、高機能な検索処理を可能にするMATCH関数の上位互換的存在です。
柔軟な一致条件、検索方向の指定、ワイルドカード対応など、多くの機能を備えており、動的なスプレッドシート作成にも最適です。
ほかの関数と組み合わせることで、強力なデータ検索・抽出処理が実現できます。
9. 対応バージョン
XMATCH関数は、Microsoft 365 および Excel 2021 以降で利用可能です。
Excel 2019以前のバージョンでは利用できないため、注意が必要です。