✏️初めに
「この値って、何番目にあるの?」
そんなときに使うのが、MATCH関数。検索値がリストの中で何番目かを調べられる便利な関数です。
でも実は、MATCHにはちょっとした弱点も…
- 煩雑な一致設定(0、1、-1が分かりにくい)
- 配列の逆方向検索ができない
- 値が見つからなかったときの処理が面倒
こうした不満点を解決してくれるのが、Excel 365/2021から登場したXMATCH関数です!
🛠️XMATCH関数ってどんな関数?
基本構文
=XMATCH(検索値, 検索範囲, [一致モード], [検索モード])
項目 | |
---|---|
検索値 | 探したい値(例:社員番号など) |
検索範囲 | 検索するリストや配列 |
一致モード(任意) | 完全一致・近似一致など(デフォルトは完全一致) |
検索モード(任意) | 上から検索、下から検索、バイナリ検索(高速検索)など |
MATCH関数との違いは?
機能・仕様 | MATCH関数 | XMATCH関数 |
---|---|---|
完全一致の指定 | "0" | "0" または省略でOK |
検索方向の指定(上下) | ×(固定:上から) | ◎(上・下 選べる) |
エラー対処 | IFERRORなど必要 | ×(補足機能なし) |
配列対応 | △(一部制限あり) | ◎(動的配列対応) |
組み合わせやすさ | △ | ◎(XLOOKUPなどと親和性◎) |

MATCHを使い慣れている方ほど、使いやすさが実感できる
①基本的な使い方
行/列 | A列 |
---|---|
1 | 商品名 |
2 | りんご |
3 | バナナ |
=XMATCH("バナナ", A2:A3)
A2からA3の範囲内から、バナナを探しA3にあった。
A2から数えて、A3は2行目なので結果出てくるセル値は、『2』
②範囲のどちらから検索する?

=XMATCH("バナナ", A2:A21, 0, 1)
A2からA21の範囲内から、バナナを上から順に探しA3にあった。
A2から数えて、A3は2行目なので結果出てくるセル値は、『2』
=XMATCH("バナナ", A2:A21, 0, -1)
A2からA21の範囲内から、バナナを下から順に探しA3にあった。
A2から数えて、A19は18行目なので結果出てくるセル値は、『18』
③ INDEX関数との複合型も強化!?

=INDEX(B2:B21, XMATCH("バナナ", A2:A21, 0, 1)
)
A2からA21の範囲内から、バナナを上から順に探しA3にあった。
A2から数えて、A3は2行目なので結果は『2』
B2からB21の範囲内から、セル値『100』を抽出する。
=INDEX(B2:B21, XMATCH("バナナ", A2:A21, 0, -1)
)
A2からA21の範囲内から、バナナを下から順に探しA3にあった。
A2から数えて、A19は18行目なので結果は『18』
B2からB21の範囲内から、セル値『140』を抽出する。
✏️INDEX関数は、INDEX(範囲, 行番号, [列番号])で、指定したセル値を抽出してくれる関数です。
※[列番号]は、省略可能。
🧩まとめ
XMATCH関数の特徴は以下の通り!
- 完全一致がデフォルトだから、式がすっきり!
- 上からも下からも検索できる
- 配列関数と相性抜群(INDEX・XLOOKUP・FILTERなどと連携◎)
- MATCH関数の“わかりにくさ”を一掃してくれる
これからは「MATCHを使う場面のほとんどがXMATCHで可能!」と言ってもいいかもしれません。
🗣️ 最後に
XMATCH関数は、MATCH関数の“かゆいところに手が届く進化形。
特に、完全一致がデフォルトというだけでも、かなりストレスが減ります。
「値の位置を調べたい」「INDEXと組み合わせて使いたい」そんな場面があれば、まずはXMATCHを試してみてください!
あなたはMATCH派?XMATCH派?
使ってみた感想も、ぜひコメントで教えてくださいね!
コメント