(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Excel】INDIRECT関数を用いて各シートから値を収集する

スポンサーリンク

はじめに

INDIRECT関数を用いてシート跨ぎの値を自動収集する手法について紹介します。

使い方自体は以下を参照ください。

使用例

例えば以下のようなExcelファイルがあり

f:id:mtiit:20191021175905p:plain
各シートの情報をsummaryシートで整理

2000シート、2001シートに以下のような値が入っており

A B
1 収入 利益
2 76000 52000
A B
1 収入 利益
2 82000 58000

summaryシートにて以下のように各シートから値を抜き出したいとします。

A B C
1 収入 利益
2 2000 76000 52000
3 2001 82000 58000
4 2002 78000 53000
5 2003 86000 67000

実行方法

例えば76000が入っているセルには

='2001'!A2

と入力すれば自動的にセルの位置から値が取得されます。

よってこの箇所を自動的にしたいので

=INDIRECT(A2&"!A2")

とすれば同シートの「A2」から取得した「2000」が入った「2000!A2」という文字列となり、それを評価することで値が取得できます。

A B C
1 収入 利益
2 2000 =INDIRECT(A2&"!A2") =INDIRECT(B2&"!B2")
3 2001 =INDIRECT(A3&"!A2") =INDIRECT(B3&"!B2")
4 2002 =INDIRECT(A4&"!A2") =INDIRECT(B4&"!B2")
5 2003 =INDIRECT(A5&"!A2") =INDIRECT(B5&"!B2")

よって

=INDIRECT(A2&"!A2")

をドラッグアンドドロップすれば残りのセルには値が格納されます。

終わりに

各シートの固定のアドレスに取得したい値が格納されている場合は、INDIRECTを用いてシートからの値が取得できます。
文字列の結合である「&」を駆使すれば欲しいセルのアドレスを指す文字列を作成できるので、ぜひ同様のことに興味があれば実施してみてください。