技術ブログ

プログラミング、IT関連の記事中心

スプレッドシートで、シート名を設定したセルを参照して別シートのセルのデータ取得(INDIRECT関数)

目次

事前準備

スプレッドシートを作成し、シートを2つ用意する。
参照用のシートには「A1」に任意の文字列を記載する。
※「サンプル」シートを作成して、「A1」に「A1」という文字列を記載した例が以下です。

別シートの値を取得(INDIRECT関数)

任意のセル(ここでは「B2」とする)に「''サンプル'!A1」と記載する。
※表示したい文字列は「'サンプル'!A1」だが、スプレッドシートの特性上、1文字目に「'」を入れる場合には「''」とする必要がある。

INDIRECT関数を使用して、上記で用意したセルを参照する。

=INDIRECT(B2)

上記の関数を記載した結果、「A1」と表示されれば、「サンプル」シートの「A1」の文字が表示されている状態となる。

INDIRECT関数内部を文字列結合して、別シートの値を取得

別シートの値を取得(INDIRECT関数)」で使用した「INDIRECT関数」は引数を文字列結合して使用する事が出来ます。

B2」にシート名のみ「サンプル」を記載し、「C2」に「サンプル」シートの取得したいセル名「A1」を記載する。
INDIRECT関数を使用して、上記で用意したセルを参照する。

=INDIRECT("'" & B2 & "'!" & C2)

これで、「別シートの値を取得(INDIRECT関数)」と同様に「A1」が表示できれば成功です。

まとめ

INDIRECT関数で別シートの値を取得する方法は確認できたかと思います。
INDIRECT関数内部を文字列結合して、別シートの値を取得」に記載した様に、文字列結合が使えるため、セル名など、関数で作成して結合など、様々な使い方が出来ます。