VLOOKUP関数はINDIRECT関数と組み合わせ、複数のシートからデータを検索することができます。
たとえば、月ごとの商品別売上を1つ1つシートでまとめているファイルで、「月」と「商品名」で売上を検索できるようにします。

目次
VLOOKUP 関数と INDIRECT 関数を組み合わせて複数のシートからデータを検索する方法
まず、「月」と「商品名」を入力して売上を表示させるための表を作成します。

「月」や「商品名」を入力するセルには、あらかじめプルダウンリストを設定しておくと入力が簡単になります。


シート名にはプルダウンリストと同じ名称の月を設定します。

たとえば、月に「1月」、商品名に「乳液」と入力し、売上を検索します。

売上はVLOOKUP 関数と INDIRECT 関数を組み合わせて検索を行います。
VLOOKUP(検索値,範囲,列番号,[検索方法]) |
---|
検索値で指定した値を、範囲の左端列から検索。検索値と一致するデータの左から列番号目の値を抽出し表示する。 |
INDIRECT(文字列) |
---|
指定した文字列をセル参照として解釈し、そのセル参照の値を返す。 |
売上を表示させるセルには以下のように数式を入力します。
=VLOOKUP(B2,INDIRECT(A2&”!A2:B12″), 2, FALSE)

数式 | 役割 |
---|---|
VLOOKUP(B2… | セルB2の商品名で検索する。 |
INDIRECT(A2&”!A2:B12″) | セルA2のシート名のシートからA2:B12の範囲を検索する。「!」はシート参照を示す。 |
2 | 検索した結果、表示させたいデータの列を指定する。今回は売上を表示させたいので範囲の「2」列目を指定する。 |
FALSE | 検索値と完全に一致するデータを検索する。 |
これで、「1月」の「乳液」の売上が表示されます。

月と商品名を変更すれば、該当のシート・商品名を検索し、売上を表示させます。

この方法は、検索したいデータが複数のシートに分散しており、シート名が規則的に変わる場合などに役に立ちます。
コメント