「参照シート」がセルごとに異なるから、1セルずつ検索範囲を変更しなきゃならないんだよね


INDIRECT関数とは
英単語の「INDIRECT」には「間接的な」「遠回りな」という意味があります。
ExcelのINDIRECT関数の書式です。
INDIRECT(参照文字列)
簡単な使用例です。A1セルの値を「間接的に」参照しています。

この仕組みを使って「参照シートの切り替え」を行いますよ!
INDIRECT関数で参照シートを指定して値を取得する
集計元データの各シートの構成です。A列に「キー」B列に「値」というシンプルな表です。
カテゴリ1,2,3 すべて同一形式です。

VLOOKUP関数の「検索範囲」に「セルの値」を使用する
ここで行いたいのは「VLOOKUP関数の第2引数=検索範囲」を「セルの値」で指定することです。
2行目の集計は「カテゴリ1」シートを参照します。B2セルに”カテゴリ1”と入力されているので、このセルの値を使います。

※「B列の値」と「シート名」が異なるとエラーになります。ご注意ください。
【NG例】
- カテゴリ1(数値が全角)
- カテゴリ1(数値が半角)
INDIRECT関数を使用した計算式がこちらです。

C2セルの数式です。VLOOKUP関数の第2引数「検索範囲」に、INDIRECT関数を使用します。
=VLOOKUP(A2,INDIRECT(B2&”!A:B”),2,FALSE)
このように「検索範囲をセル参照で指定する」ことで、データが増えても計算式をコピーするだけでOKです。

INDIRECT関数の仕組み解説
仕組みを解説していきます!

★ポイント
B2&”!A:B” = “カテゴリ1!A:B” の仕組み
Excelの計算式では、文字列をダブルクォート(”)で囲みます。「ダブルクォートで囲まれた文字列」と「何らかの値」を & 結合すると、値全体が文字列になります。
- B2 = 参照セル
- “!A:B” = 文字列
B2という参照セルに、ダブルクォートの文字列を & で結合することによって、全体が文字列になるのです。
VLOOKUP関数とINDIRECT関数の組み合わせです。

ぜひ使ってみてね~