Excelでのデータ検索といえば、MATCH
関数で「値の位置」を探し、INDEX
関数で「値を取り出す」という組み合わせが王道でした。しかし、Microsoft 365の登場により、MATCH
関数の正統後継者であるXMATCH
(エックスマッチ)関数が利用できるようになりました。
XMATCH
は、従来のMATCH
関数の機能をすべてカバーしつつ、よりシンプルで、より高機能になっています。今回は、この新しい標準となるXMATCH
関数の基本的な使い方を解説します。
今回のゴール:指定した商品名がリストの何番目にあるかを調べる
以下の「物品リスト」の中から、B2セルで指定した「ぶどう」が、リスト(E3:E7の範囲)の中で
何番目にあるかを検索し、B3セルにその位置を表示させます 1。
サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。
Excel-g730-1.xlsx (ダウンロード)
以下のサンプルデータをExcelシートにコピーして、操作を試してみてください。
A | B | C | D | E | F | |
1 | 位置検索 | 物品リスト | ||||
2 | 商品名 | ぶどう | 物品番号 | 物品名 | 価格 | |
3 | 位置 | (ここに数式を入力) | 行目 | B101 | 桃 | ¥700 |
4 | B102 | メロン | ¥1,050 | |||
5 | B103 | ぶどう | ¥800 | |||
6 | E101 | 人参 | ¥200 | |||
7 | E102 | かぼちゃ | ¥330 |
解決策:XMATCH関数の使い方
セルB3に、以下の数式を入力します 2。
Excel
=XMATCH(B2, E3:E7)
これを入力すると、「3」という結果が返されます 3。これは、「ぶどう」が検査範囲
E3:E7
の中で3番目にあることを示しています 4。
数式の解説
XMATCH
関数の基本的な構文は、たった2つの引数で構成されます。
XMATCH(検索値,検索範囲,[一致モード],[検索モード])
- 検索値 (lookup_value):
B2
- 探したい値が入っているセルを指定します 5。今回の例では、B2セルの「ぶどう」です 6。
- 検索範囲 (lookup_array):
E3:E7
- 検索値を探す対象となるセル範囲(1行または1列)を指定します 7。今回は物品名が並んでいる
E3:E7
の範囲です 8。
- 検索値を探す対象となるセル範囲(1行または1列)を指定します 7。今回は物品名が並んでいる
MATCH関数との決定的な違い
MATCH
関数を使ったことがある方は、「あれ、3番目の引数 0
はどこへ?」と疑問に思ったかもしれません。
- 従来の
MATCH
関数:=MATCH(B2, E3:E7, **0**)
← 完全一致させるために「0
」が必須でした。 - 新しい
XMATCH
関数:=XMATCH(B2, E3:E7)
← 何も指定しない場合、自動的に完全一致になります。
これは非常に大きな改善点です。検索の99%は完全一致で行われるため、XMATCH
はより直感的で、引数を一つ入力する手間を省いてくれます。
XMATCHのさらなるパワー
XMATCH
は、省略可能な引数でMATCH
を上回る柔軟性を持ちます。
- 検索モード:
MATCH
にはなかった、**末尾から検索(逆順検索)**が可能になり、「リストの最後に出てくる〇〇を探す」といったことが簡単にできるようになりました。 - ワイルドカード: アスタリスク(
*
)などを使った、より柔軟な検索にも標準で対応しています。
まとめ
XMATCH
は、MATCH
関数のシンプルさと高機能を両立させた、まさに次世代の標準となる関数です。INDEX
関数や新しいXLOOKUP
関数との相性も抜群です。
Microsoft 365をお使いの方は、これからはMATCH
ではなくXMATCH
を使うことを強くお勧めします。より少なく、よりパワフルに。新しい関数を使いこなし、Excelの作業効率をさらに高めていきましょう。
コメント