Excelで、同じフォーマットで入力されたデータが複数のシートにあるデータの集計作業では、INDIRECT関数の活用が有効な手段の一つです。
INDIRECT関数とは、セルに記述された「テキスト情報」が参照するセルの値を返す便利な関数です。
具体的な手順は以下の通りです。
なお、INDIRECT関数は単票形式のシートからのデータ抽出に適しており、リスト形式の表を一覧にしたい場合は、【Excel】複数シートの表を一つのシートに結合する方法(VSTACK関数の活用) をご覧ください。
内容:
集計前のデータ状態
次のようにExcelファイル内に、同じフォーマットで入力されたデータが複数枚あり、特定のセルの情報を抽出した一覧表を作成したい。
複数シートのデータの抽出結果
抽出結果を表示するシートを追加し、INDIRECT関数を利用して、次のように記載する。
=INDIRECT($B3&"!"&C$2)
この事例では、B列に参照するシート名の情報、2行目に抽出するセル番地を記載している。これらと、シートを表す"!"とを文字列連結し、INDIRECT関数に使用するセル参照情報としている。
なお、上記の事例では日付データはシリアル値となっているので、セルの書式設定で日付形式に変更する。
以上のような方法で、複数シートのデータを抽出して一つのシートにまとめることが可能です。
ただし、シートの枚数が多い場合や、繰り返しシートの更新がある場合などは少し手間なので、VBAを使用した方法も作成してみました。
INDIRECT関数で他のブックを参照する時の注意点
他のブックを参照する場合 、そのブックを事前に開いておく必要があります。参照先のブックを開いていないと、エラー値 #REF! が返される仕様です。
参考情報
Excelで複数ブックのデータ(単票)を一覧表にまとめる方法にはいくつかの選択肢があるので以下に対応例をまとめました。
その他、データの加工・抽出、管理の操作事例を以下にまとめています。