エクセル INDIRECTを使って文字列からシートを参照する
あるシートの A1 セルを参照するには、下記のように書くとできます。
=シート名!A1
1 つや 2 つくらいであれば、この方法で問題ないですが、数が多い場合、参照する場所を変更したり、シート名を変えたときに、式が入っているセルを編集しないといけないため、大変です。
シート名の一覧を作成して、各シートの特定のセルの値を取得できれば、シート名が修正になっても、リストの値だけ直せばよいので簡単です。
INDIRECT 関数を使用することで、セルの値を参照に変えることができます。
=INDIRECT("'" & A1 & "'!A2")
このように書くことによって、A1 セルの値をシート名として扱い、参照することができるようになります。
A1 の値が「2017 年」という値であれば、「2017 年」というシートの A2 セルを参照することになります。