EX-1 2017/11/20 執筆

INDIRECT関数を使用して別シートのデータを参照

記述が間違っているのかと若干はまりました。

INDIRECTを使用して別シートのデータを参照する場合の具体的な使い方を説明します。

Ex-1-1

上記3つのシートからINDIRECTを使用してセルを参照します。
SheetNo2のA1には「シート2」
Sheet No3のA1には「シート 3」が入力されています。


Ex-1-2

Aにシート名、BにAのシート名を参照したデータを取得したい場合
    =INDIRECT(A1&"!A1")
    =INDIRECT(A2&"!A1")
↓ 内部的にこのように変換され表示される

=INDIRECT("SheetNO2!A1")
=INDIRECT("Sheet NO3!A1")

Ex-1-3

"Sheet NO3"を参照したINDIRECTがエラーになってしまう。

これはシート名に空白が含まれていることが原因

空白を含むシート名を参照する場合のエラーの回避方法は?

シート名を'シングルコート'で囲む必要がある。
    =INDIRECT("'"&A2&"'!A1")
↓ 内部的にこのように変換され表示される

=INDIRECT("'Sheet NO3'!A1")

Ex-1-4

エラー無く表示できました。

SUMIFなどの関数で合計を出す場合でも使用できる。

W4セルのシート名からD5セルの文字列にマッチする行のデータを合計します。
    =SUMIF(INDIRECT("'"&W$4&"'!$I$5:$N$200"),$D5,INDIRECT("'"&W$4&"'!$N$5:$N$200"))