Excel VLOOKUP関数で複数シート(セル範囲)から検索する方法

2019年9月3日

VLOOKUP関数は本来、

一つのセル範囲を検索対象に指定して

検索結果を取得する関数です。

そのため通常の使い方では

複数シート、複数セル範囲を

検索対象として指定出来ません。

ここでは複数シート、複数セル範囲の

指定をする応用方法を紹介します。

サンプル表(ファイル)

このように三つの表に検索範囲が

分かれた例で手順を記載します。

検索対象シート:マグロ
検索対象シート:マグロ
検索対象シート:サバ
検索対象シート:サバ
検索対象シート:カツオ
検索対象シート:カツオ

手順

検索対象とセルで指定する方法と

指定しない方法が存在します。

検索対象を指定する方法

セルでシート(セル範囲)を指定します。

マグロシートで検索している例
マグロシートで検索している例

検索値が同じでもシートが異なると

結果がこのように切り替わります。

サバシートで検索している例
サバシートで検索している例

実現にはVLOOKUP関数の範囲指定に

INDIRECT関数を使用します。

それぞれセル範囲に名前を付けて、

INDIRECT関数の引数にしても実現が可能です。

セルの行や列が変わる場合は特に効果的です。

INDIRECT関数で実現した結果

セル範囲に名前を定義。設定と編集・削除方法

検索対象を指定せず、順番に検索する方法

IFERROR関数を使用し、

検索対象の全シートを対象とする

VLOOKUP関数を順番に記述しています。

エラーしなければVLOOKUP関数の結果を返しますが

結果が見つからないとエラーとなるため

次のVLOOKUP関数を実行します。

複数の検索対象に存在する検索値を指定した場合、

書いた順番(マグロ→サバ→カツオ)で優先されます。

IFERROR関数を使用し、複数のVLOOKUP関数を指定する例
IFERROR関数を使用し、複数のVLOOKUP関数を指定する例

新関数XLOOKUP関数の場合

なお2019年後半にXLOOKUP関数という

非常に便利な上位版がリリース予定です。

その関数でも同じ対応になりそうです。

関連記事

息抜きぬこ動画

VLOOKUP関数の使い方・活用方法の記事一覧

Excel 文字列による柔軟なセル指定を行う(INDIRECT関数)

フォローする