【Excel関数】MATCH関数の上位互換!XMATCHで位置検索がもっと自由に!

知のピース×データ整理
この記事は約3分で読めます。

✏️初めに

「この値って、何番目にあるの?」
そんなときに使うのが、MATCH関数。検索値がリストの中で何番目かを調べられる便利な関数です。

でも実は、MATCHにはちょっとした弱点も…

  • 煩雑な一致設定(0、1、-1が分かりにくい)
  • 配列の逆方向検索ができない
  • 値が見つからなかったときの処理が面倒

こうした不満点を解決してくれるのが、Excel 365/2021から登場したXMATCH関数です!


🛠️XMATCH関数ってどんな関数?

基本構文

=XMATCH(検索値, 検索範囲, [一致モード], [検索モード])
項目
検索値探したい値(例:社員番号など)
検索範囲検索するリストや配列
一致モード(任意)完全一致・近似一致など(デフォルトは完全一致)
検索モード(任意)上から検索、下から検索、バイナリ検索(高速検索)など

MATCH関数との違いは?

機能・仕様MATCH関数XMATCH関数
完全一致の指定"0""0"または省略でOK
検索方向の指定(上下)×(固定:上から)◎(上・下 選べる)
エラー対処IFERRORなど必要×(補足機能なし)
配列対応△(一部制限あり)◎(動的配列対応)
組み合わせやすさ◎(XLOOKUPなどと親和性◎)
美俊
美俊

MATCHを使い慣れている方ほど、使いやすさが実感できる

①基本的な使い方

行/列A列
商品名
りんご
バナナ
=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派?
使ってみた感想も、ぜひコメントで教えてくださいね!

コメント

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