説明
この関数を使用して、配列またはセル範囲から指定されたアイテムを検索し、そのアイテムの相対位置を返却する。
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), [デフォルト] |
例
サンプルデータ
| A | B | |
|---|---|---|
| 1 | Apple | $1.25 |
| 2 | バナナ | $0.75 |
| 3 | チェリー | $2.50 |
| 4 | 日付 | $3.00 |
サンプル数式
| 使用例 | 数式 | 説明と結果 |
|---|---|---|
| リスト内の正確な値の相対位置を検索します。 | =XMATCH("さくらんぼ", A2:A6) |
この数式は次のように機能する:
このデータセットでは、数式は3 を返却します。 |
| ルックアップ値以上の最小値を検索して、値の相対位置を求めます。 | =xmatch(1, b2:b6, 1) |
この数式は次のように機能する:
このデータセットでは、数式は4 を返します。 |
| ワイルドカード検索を使用して、リスト内の値を検索します。 | =xmatch("g*", a2:a6, 2) |
この数式は次のように機能する:
このデータセットでは、数式は#N/A を返します。 |
| リストの最後のアイテムから検索して、値の相対位置を求めます。 | =XMATCH("日付", A2:A6, 0, -1) |
この数式は次のように機能する:
このデータセットでは、数式は4 を返却します。 |
| ルックアップ値以下の最大値を検索して、値の相対位置を求めます。 | =xmatch(1.5, b2:b6, -1) |
この数式は次のように機能する:
このデータセットの場合、数式は4 を返却します。 |
メモ
- XMATCH は、lookup_array におけるマッチしたアイテムの相対位置を返却する。
- 一致するものが検索されず、おおよその一致が指定されない場合、XMATCHは#N/Aを返却する。
- バイナリ検索 (
search_mode=2 または-2) の場合、lookup_arrayは昇順または降順にソートされていなければなりません。 - ワイルドカード文字 (* と ?) は match_mode が 2 に設定されているときのみサポートされる。
- XMATCHはテキスト値のマッチングにおいて大文字と小文字を区別しない。
ヒント
- XMATCH をXLOOKUP と併用すると、強力で柔軟なルックアップ操作が可能になります。
- 大きな並べ替えデータセットの場合は、バイナリ検索 (
search_mode2 または-2) を使うとより良いパフォーマンスが得られる。 - ソートされていないデータを操作する場合は、
search_mode1 または-1 を使用すると、正確な結果が得られます。 - XMATCHをINDEX などの他の関数と結合して、高度なデータ検索タスクを行うことができる。