エクセルXLOOKUP関数の使い方: #VALUE!エラーの対処法、検索範囲を複数列にする方法も

はじめに
エクセルのXLOOKUP
関数は、 VLOOKUP
やHLOOKUP
関数の強化版に相当します。
ここでは、XLOOKUP
関数の
- 基本機能・使い方
- 注意事項
- 関連する関数
- 使用例、応用法
について取り扱います。
基本機能・使い方
XLOOKUP
関数は、
検索値
, 検索範囲
, 戻り範囲
, 見つからない場合
, 一致モード
, 検索モード
)検索範囲
から検索値
を探し、
マッチした行 (or 列) の値を戻り範囲
から返す。
検索値
検索範囲
戻り範囲
見つからない場合
一致モード
0 : 見つからない場合に、#N/Aを返す。
-1 : 見つからない場合に、次に小さい値にマッチ。
1 : 見つからない場合に、次に大きい値にマッチ。
2 : ワイルドカードを有効化。
検索モード
1 : 選択範囲の先頭から検索。
-1 : 選択範囲の末尾から検索。
2 : 昇順データ用のバイナリ検索(高速検索)。
-2 : 降順データ用のバイナリ検索(高速検索)
注意事項
関数の仕様、
検索条件の仕様
- 部分一致検索(ワイルドカード)に対応(
一致モード
:2
の設定が必要) - 大文字・小文字の区別はしない
- 全角・半角の区別はする
- マッチする値が複数あっても、返す値は1つのみ(すべて取得するには
FILTER
関数)。
うまく動作しないときの原因と対策
XLOOKUP
関数がうまく動作しない場合、
#VALUE!
エラーが表示されるとき:検索範囲
が複数行かつ複数列になっている
対策:範囲を1行または1列に修正する(複数行かつ複数列にする場合は、後述)。検索範囲
と戻り範囲
のサイズが異なっている。
対策:同じサイズに選択範囲を修正する。
関連する関数
XLOOKUP
関数と似た機能を持つ関数には、以下があります。
VLOOKUP
関数: 表を 縦 方向( 列 単位)に検索し、一致する 列 の値を取得する。HLOOKUP
関数: 表を 横 方向( 行 単位)に検索し、一致する 行 の値を取得する。INDEX
+MATCH
関数:VLOOKUP
よりも柔軟な検索が可能。XLOOKUP
使用不可のときに有用。FILTER
関数: 条件に合致する複数の値をすべて抽出できる。LOOKUP
関数: 単純な検索や近似値の取得に使われる。
使用例、応用例
XLOOKUP
関数の使用例・応用例として、以下のパターンを紹介します。
検索範囲
を複数列に対応:VSTACK
関数との組み合わせ。- 部分一致検索: 検索条件にワイルドカードを使用。
検索範囲を複数列に対応
VSTACK
関数と組み合わせることで、 検索範囲
に複数列を指定する例です。 VSTACK
関数で、複数の列を連結して1列にしています。
検索範囲
と 戻り範囲
のサイズが同じになるように、 VSTACK
関数を使用します。
関数の構成
=XLOOKUP(
検索値
,
VSTACK(検索範囲1
,検索範囲2
),
VSTACK(戻り範囲
,戻り範囲
)
)
部分一致検索
XLOOKUP
関数では、検索条件にワイルドカードを使用できるため、 *
(アスタリスク記号)でなく?
(疑問符 / ハテナ記号)を使用します。
関数の構成
=XLOOKUP(
検索値
,検索範囲
,戻り範囲
,, 2 )※
検索値
に、ワイルドカード*
使用
ワイルドカード
ワイルドカードとは、任意の文字列を表す特殊な文字のことです。
言葉で表すと「ほにゃらら」「○○」などのイメージです。
特定の文字列が含まれるかどうかを調べるときに使用します。
関連する記号としては、以下があります。
*
(アスタリスク記号):任意の文字列(文字数不定)?
(疑問符 / ハテナ記号):任意の1文字~
(チルダ記号):エスケープ記号(*
,?
記号を検索文字として使用する場合に使用)