エクセル INDIRECTを使って文字列からシートを参照する

2017.9.7

あるシートの A1 セルを参照するには、下記のように書くとできます。

=シート名!A1

1 つや 2 つくらいであれば、この方法で問題ないですが、数が多い場合、参照する場所を変更したり、シート名を変えたときに、式が入っているセルを編集しないといけないため、大変です。

シート名の一覧を作成して、各シートの特定のセルの値を取得できれば、シート名が修正になっても、リストの値だけ直せばよいので簡単です。

INDIRECT 関数を使用することで、セルの値を参照に変えることができます。

=INDIRECT("'" & A1 & "'!A2")

このように書くことによって、A1 セルの値をシート名として扱い、参照することができるようになります。

A1 の値が「2017 年」という値であれば、「2017 年」というシートの A2 セルを参照することになります。