Excelで別のシートのセルを参照する場合、通常以下のように関数入力欄へ入力するはずだ。

=’Sheet1′!A1

しかし複数のシートから参照してくる場合など、いちいち関数欄を手動で変更していく必要があり管理が煩雑になりがちだ。

シート名をセルで管理し変数として使うことで、この問題を解決することができる。

INDIRECT関数を使う

INDIRECT関数を使うことで、シート名をセル参照することができる。

=INDIRECT(A1&”!A1″)

まず「&」の前にシート名が入力されたセル番地を入力する。

続けて「&」の後に別シートの参照するセル番地を入力する。
このとき、ダブルクォーテーションで囲い「!」記号をつけておく。

こうすることで自シートの「A1」セルに入力されたシート名が変数展開され、別シートの「A1」セルを参照することができるようになる。

実際の使用例

Sheet1のB1セルに、Sheet2のA1セルの値を表示させるケースを見ていこう。

Sheet2のA1セルには以下のテキストが入っているとする。

まず、Sheet1のA1セルに対象のシート名を入力しておく。

次に、Sheet1のB1セルにINDIRECT関数を以下のとおり入力する。

A1セルが変数となっているため、複数のシートを管理する場合などはA1セルの値をシート名に合わせて変更するだけで簡単に参照先のシートを変えることができる。