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

2017.9.7

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

=シート名!A1

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

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

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

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

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

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