XLOOKUP関数の使い方と#VALUE!エラーの原因対策

はじめに
エクセルのXLOOKUP関数は、
ここでは、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関数と組み合わせることで、
検索範囲と
関数の構成
=XLOOKUP(
検索値,
VSTACK( 検索範囲1 , 検索範囲2 ),
VSTACK( 戻り範囲 , 戻り範囲 )
)
部分一致検索
XLOOKUP関数では、検索条件にワイルドカードを使用できるため、
関数の構成
=XLOOKUP( 検索値 , 検索範囲 , 戻り範囲 ,, 2 )
※ 検索値に、ワイルドカード * 使用
ワイルドカード
ワイルドカードとは、任意の文字列を表す特殊な文字のことです。
言葉で表すと「ほにゃらら」「○○」などのイメージです。
特定の文字列が含まれるかどうかを調べるときに使用します。
関連する記号としては、以下があります。
- * (アスタリスク記号):任意の文字列(文字数不定)
- ? (疑問符 / ハテナ記号):任意の1文字
- ~ (チルダ記号):エスケープ記号(*, ? 記号を検索文字として使用する場合に使用)
関連記事











