別シートをVLOOKUPで動的に参照する方法は?
結論
INDIRECTでシート名を動的に指定することで、複数シートからVLOOKUPで検索できます。
詳しい解説
INDIRECT関数を使うことで、シート名をセル参照にしてVLOOKUPで動的に検索できます。パターンは`=VLOOKUP(A2, INDIRECT(B2&"!A:D"), 3, FALSE)`で、B2セルに「東京」「大阪」等のシート名を入力すると、対応するシートから自動検索します。全バージョンで使用可能ですが、INDIRECT関数は揮発性関数のため多用するとパフォーマンスに影響します。支店別シート、月別シートなど複数シートから同じ構造のデータを検索する場合に便利です。
執筆・検証:田中 けんた|Excel歴15年・MOS資格保持
バージョン対応
| Excel 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 365 |
|---|---|---|---|---|
| 対応 | 対応 | 対応 | 対応 | 対応 |
実務での使用例
支店別シートから売上を検索
B2セルに「東京」と入力すると東京シートから、「大阪」と入力すると大阪シートから自動検索
=VLOOKUP(A2, INDIRECT(B2&"!A:D"), 3, FALSE)月別シートから実績を参照
1月~12月の各シートから、選択した月のデータを自動で取得
=VLOOKUP(A2, INDIRECT(C2&"月!A:E"), 4, FALSE)