クイックナビゲーション
XMATCH関数
概要
XMATCH関数は、指定された項目を配列内またはセル範囲内で検索し、その相対位置(何番目かを示す数値)を返します。従来のMATCH関数を進化させた高機能な検索関数で、柔軟な検索モードとマッチングオプションを提供します。
構文
XMATCH(検索値, 検索範囲, [一致モード], [検索モード])
パラメータ
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
| 検索値 | Any |
はい | 検索対象の値(セル参照、数値、文字列など) |
| 検索範囲 | Range/Array |
はい | 検索を行う配列またはセル範囲 |
| 一致モード | Number |
いいえ | 0:完全一致(default), -1:次に小さい値, 1:次に大きい値, 2:ワイルドカード |
| 検索モード | Number |
いいえ | 1:先頭から(default), -1:末尾から, 2:昇順バイナリ, -2:降順バイナリ |
XMATCH関数の使用
XMATCHはデータ配列内で指定値の位置を特定する関数です。VLOOKUPやMATCHの代替として使用でき、特に複数条件のルックアップや動的検索に優れています。INDEX関数と組み合わせることで、任意の行列データから値を抽出可能です。
XMATCHの一般的な例
基本的な完全一致検索
=XMATCH(E3,C3:C7)
C3:C7内でE3の値を検索し、相対位置を返す(例:"Grape"が2番目なら2を返す)
近似一致(次に大きい値)
=XMATCH(F2,C3:C9,1)
売上しきい値F2以上の最初の担当者の位置を返す(ボーナス対象者数)
2次元テーブル検索(INDEX+XMATCH)
=INDEX(C6:E12,XMATCH(B3,B6:B12),XMATCH(C3,C5:E5))
行と列の両方でXMATCHを使用し、特定セル値を抽出
逆方向検索
=XMATCH("商品A",C3:C10,-1)
配列末尾から先頭へ検索し、一致位置を返す
よくある質問
XMATCHはMATCHの進化版で、検索モードや一致オプションが豊富。MATCHにはない逆検索・バイナリ検索に対応し、デフォルト動作も改善されています。
検索モード2(昇順)または-2(降順)使用時は、検索範囲が事前にソートされている必要があります。未ソートだと誤った結果が返ります。
一致モード2で使用可能。*(複数文字)、?(1文字)、~(リテラル)に対応します。
一般的なエラーと解決策
#N/A エラー
Cause: 検索値が見つからない
Solution: 一致モードを調整するか、データ確認
#VALUE! エラー
Cause: バイナリ検索で範囲が未ソート
Solution: 検索モードを1に戻すか、データをソート
予期しない位置
Cause: 検索モードの誤設定
Solution: 検索モード引数を確認
注記
- Excel 365/2021限定機能
- MATCH関数からの移行を推奨
- 大規模データでバイナリ検索が高速
- XLOOKUPと組み合わせると最強
- 配列数式としても使用可能
互換性
利用可能: Excel 365, Excel 2021
利用不可: Excel 2019, Excel 2016, Excel 2013, Excel 2010, Excel 2007, Excel 2003
コンテンツ最終レビュー: December 9, 2025
更新頻度: 必要に応じて
テスト済みExcelバージョン: Excel 365, Excel 2021