説明
この関数を使用して、セルの配列または範囲から指定された項目を検索し、その項目の相対位置を返します。
XMATCHはMATCH機能の進化版である。完全一致または近似一致の検索が可能で、昇順または降順で検索することができます。
XMATCHはMATCHといくつかの点で異なる:
- XMATCHはバイナリ検索をサポートし、ソートされた大きなデータセットに対してより高速なパフォーマンスを提供します。
- XMATCHでは、完全一致モードでワイルドカード文字を使用できます。
- XMATCHは、完全に一致する項目が見つからない場合、次に大きいか小さい項目を返すことができる。
構文
XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
インプット
この関数は以下の引数を受け付ける:
名称 | 必須 | 説明 | 有効入力 |
---|---|---|---|
ルックアップ値 |
はい | lookup_array で検索する値。 | 数値、テキスト文字列、論理値、セル参照、セル範囲、またはこれらのいずれかになる数式。 |
ルックアップ配列 |
はい | 検索するセルの範囲。 | セル参照、セル範囲、またはこれらのいずれかになる数式。 |
マッチモード |
いいえ | lookup_value . |
0 (完全一致), [デフォルト] -1 (完全一致または次に小さい項目) 1 (完全一致または次に大きい項目) 2 (ワイルドカード一致) これらのいずれかになる式も許容される。 |
検索モード |
いいえ | 使用する検索モード。 |
1 (search first-to-last), [Default] |
例
サンプルデータ
A | B |
---|---|
製品 | 価格 |
アップル | $0.50 |
バナナ | $0.30 |
チェリー | $0.80 |
日付 | $1.20 |
エルダーベリー | $2.50 |
サンプルフォーミュラ
数式 | 説明 | 結果 |
---|---|---|
=XMATCH("チェリー", A2:A7) |
チェリー」の商品一覧における位置を検索します。 | 3 |
=xmatch(1, b2:b7, 1) |
価格リストの 1 または次の大きな値の位置を検索します。 | 4 |
=xmatch("g*", a2:a7, 2) |
ワイルドカードを使って「G」で始まる商品を検索します。 | #該当なし |
=XMATCH("Date", A2:A7, 0, -1) |
リストの下から「日付」を検索する。 | 4 |
=xmatch(1.5, b2:b7, -1) |
価格表の 1.5 またはその次に小さい値の位置を検索します。 | 4 |
メモ
- XMATCH は、lookup_array 内のマッチした項目の相対位置を返す。
- 一致するものが見つからず、おおよその一致が指定されなかった場合、XMATCHは#N/Aを返す。
- バイナリ検索(
search_mode
2 または-2 )の場合、lookup_array
は昇順または降順でソートされていなければならない。 - ワイルドカード文字 (* と ?) は match_mode が 2 に設定されている場合のみサポートされます。
- XMATCHは、テキスト値のマッチングにおいて大文字と小文字を区別しない。
ヒント
- XMATCH をXLOOKUP と併用すると、強力で柔軟なルックアップ操作が可能になります。
- 大きなソート・データセットの場合は、バイナリ検索 (
search_mode
2 または-2) を使うとパフォーマンスが向上する。 - ソートされていないデータを扱う場合は、
search_mode
1 または-1 を使用すると、正確な結果が得られます。 - XMATCH をINDEX のような他の機能と組み合わせて、高度なデータ検索作業を行うことができます。
関連機能
cell
childrefs
hlookup
index
match
vlookup
xlookup
xmatch