「リストの中で特定の値が何番目にあるかを調べたい」
そんなときに使えるのが XMATCH関数 です。
従来の MATCH関数 の強化版で、前方・後方検索や部分一致、近似一致などに柔軟に対応できるのが特徴です。VLOOKUP や INDEX 関数と組み合わせることで、より精密な検索ができます。
XMATCH関数とは?
XMATCH関数 は、指定した範囲(または配列)の中で、検索した値が何番目にあるか(位置)を返す関数です。
Excel 365 / Excel 2021 以降で利用可能で、MATCH関数の後継として登場しました。
書式
=XMATCH(検索値, 検索範囲, [一致モード], [検索モード])
引数の説明
- 検索値:検索する値。
- 検索範囲:検索対象のセル範囲を指定します。
- [一致モード]:一致の種類を指定します。
- 0:完全一致(既定)
- –1:完全一致、または検索値以下の最大値
- 1:完全一致、または検索値以上の最小値
- 2:部分一致(ワイルドカード使用可)
- [検索モード]:検索の方向を指定します。
- 1:先頭から検索(既定)
- –1:末尾から検索
- 2:バイナリ検索(昇順前提)
- –2:バイナリ検索(降順前提)
使用例①:指定した値の位置を調べる

「みかん」がこのリストの何番目にあるかを調べたい場合👇
=XMATCH(B5, B3:B7)
👉 結果:

「みかん」は範囲 B3:B7 の3番目にあるため、3が返されます。
使用例②:部分一致で検索
商品名に「ど」が含まれる最初のセルを探す場合👇
=XMATCH("*ど*", B3:B7, 2)
👉 結果:

※ ワイルドカードを使う場合は、照合の種類を 2 にします。
*
(アスタリスク)は0文字以上の任意の文字列を表します。
使用例③:後方から検索(同じ値が複数ある場合)

「佐藤」がリストのどこにあるか、後ろから検索したい場合👇
=XMATCH("佐藤", B3:B6, 0, -1)
👉 結果:

後方から検索するため、3番目の「佐藤」が見つかります。
XMATCHの便利な使い方(INDEXとの組み合わせ)

たとえば、商品名「みかん」を入力するとその価格を自動で表示したい場合👇
=INDEX(C3:C7, XMATCH("みかん", B3:B7))
👉 結果:

- XMATCH(“みかん”, B3:B7)
→ 「B3:B7 の中で『みかん』が何番目にあるか」を調べます。
結果は 3(3番目に「みかん」がある)。 - INDEX(C3:C7, 3)
→ C列(価格の列)の3番目の値を取り出します。
C列の3番目は 110。
つまり、110円 を返す(みかんの価格)
MATCH関数と違い、XMATCHは前後両方の検索や部分一致に強く、
INDEX関数と組み合わせると「XLOOKUPのような柔軟検索」が可能になります。
注意点
注意点 | 内容 |
---|---|
MATCH関数との違い | XMATCHは部分一致や検索方向が指定可能で、より高機能 |
関連関数
関数 | 説明 |
---|---|
MATCH関数 | 指定値の位置を返す(XMATCHの旧バージョン) |
INDEX関数 | 指定位置の値を返す |
XLOOKUP関数 | 条件検索と値の取得を1式で行える新関数 |
FILTER関数 | 条件に一致する行を抽出する |
まとめ
XMATCH関数 は、指定した値が範囲の何番目にあるかを返す便利な検索関数です。
従来の MATCH関数 よりも柔軟で、
前方・後方検索、部分一致、近似一致など幅広い場面に対応します。
INDEX関数やXLOOKUP関数と組み合わせることで、
検索と抽出を自動化した効率的なデータ管理が可能になります。
関連記事:INDEX関数の使い方
関連記事:XLOOKUP関数の使い方