はじめに
INDIRECT関数を用いてシート跨ぎの値を自動収集する手法について紹介します。
使い方自体は以下を参照ください。
使用例
例えば以下のようなExcelファイルがあり
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を用いてシートからの値が取得できます。
文字列の結合である「&」を駆使すれば欲しいセルのアドレスを指す文字列を作成できるので、ぜひ同様のことに興味があれば実施してみてください。