2025/6/19

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

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

はじめに

エクセルのXLOOKUP関数は、 データベース(テーブル)からデータ値を抽出するときによく使われる関数です。 VLOOKUPHLOOKUP関数の強化版に相当します。 ただし、旧バージョン (2019以前) のエクセルでは使用できない ので注意です。

ここでは、XLOOKUP関数の

  • 基本機能・使い方
  • 注意事項
  • 関連する関数
  • 使用例、応用法

について取り扱います。

基本機能・使い方

XLOOKUP関数は、 検索してマッチした行 (or 列) の値を返す関数 です。

XLOOKUP関数
XLOOKUP ( 検索値, 検索範囲, 戻り範囲, 見つからない場合, 一致モード, 検索モード)

検索範囲から検索値を探し、 マッチした行 (or 列) の値を戻り範囲から返す。

検索値
: 必須
F2
検索する数値 / 文字列。
検索範囲
: 必須
A1:A5
検索するデータ範囲。
戻り範囲
: 必須
B1:B5
取得する値が存在するデータ範囲。検索範囲サイズに対応させる必要あり。
見つからない場合
: 任意
"なし"
検索でマッチしない場合に返す値。未指定時は #N/A。
一致モード
: 任意
0
一致モードを設定する数値(未指定時 0)。
 0 : 見つからない場合に、#N/Aを返す。
 -1 : 見つからない場合に、次に小さい値にマッチ。
 1 : 見つからない場合に、次に大きい値にマッチ。
 2 : ワイルドカードを有効化。
検索モード
: 任意
1
検索モードを設定する数値(未指定時 1)。
 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文字
  • ~ (チルダ記号):エスケープ記号(*, ? 記号を検索文字として使用する場合に使用)

【検索範囲が正しく設定されていない例】
ABCDEFGHIJK
1❌検索範囲が❌検索範囲と戻り範囲✅検索範囲が1列 &
2 複数行かつ複数列 の行数が異なる 戻り範囲の行数と同じ
3A10A10A10
4B20B20B20
5C30C30C30
6D40D40D40
7E50E50E50
8
9Cの値:#VALUE!Cの値:#VALUE!Cの値:30

ABCDEFG
1AF10
2BG20検索値:G
3CH30抽出値:20
4DI40
5EJ50

ABCDEF
11-aA
21-bB検索値:*-b
31-cC合計値:B
42-dD
52-eE