shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel】複数シートのデータを抽出して一つのシートにまとめる方法(INDIRECT関数の活用)

Excelで、同じフォーマットで入力されたデータが複数のシートにあるデータの集計作業では、INDIRECT関数の活用が有効な手段の一つです。

INDIRECT関数とは、セルに記述された「テキスト情報」が参照するセルの値を返す便利な関数です。

具体的な手順は以下の通りです。

なお、INDIRECT関数は単票形式のシートからのデータ抽出に適しており、リスト形式の表を一覧にしたい場合は、【Excel】複数シートの表を一つのシートに結合する方法(VSTACK関数の活用) をご覧ください。

内容:

集計前のデータ状態

次のようにExcelファイル内に、同じフォーマットで入力されたデータが複数枚あり、特定のセルの情報を抽出した一覧表を作成したい。

各シートのセルに、値が入力されている

同一ファイル内に同じフォーマットのファイルが複数あり

 

複数シートのデータの抽出結果

抽出結果を表示するシートを追加し、INDIRECT関数を利用して、次のように記載する。

=INDIRECT($B3&"!"&C$2)

この事例では、B列に参照するシート名の情報2行目に抽出するセル番地を記載している。これらと、シートを表す"!"とを文字列連結し、INDIRECT関数に使用するセル参照情報としている。

シート名と、抽出のセル番地から数式で参照情報を記入

複数シートのデータの抽出結果(INDIRECT関数)

なお、上記の事例では日付データはシリアル値となっているので、セルの書式設定で日付形式に変更する。

 

以上のような方法で、複数シートのデータを抽出して一つのシートにまとめることが可能です。

ただし、シートの枚数が多い場合や、繰り返しシートの更新がある場合などは少し手間なので、VBAを使用した方法も作成してみました。

shikumika.org

INDIRECT関数で他のブックを参照する時の注意点

他のブックを参照する場合 、そのブックを事前に開いておく必要があります。参照先のブックを開いていないと、エラー値 #REF! が返される仕様です。

support.microsoft.com

参考情報

Excelで複数ブックのデータ(単票)を一覧表にまとめる方法にはいくつかの選択肢があるので以下に対応例をまとめました。

shikumika.org

 

その他、データの加工・抽出、管理の操作事例を以下にまとめています。

shikumika.org