INDIRECT関数の参照文字列に使用可能なパターンを網羅する
ExcelのINDIRECT関数は、文字列によって指定されたセルの値を取得するために使用される便利な関数です。本記事では、INDIRECT関数の参照文字列に使用可能なパターンを網羅的に解説し、各パターンの使用例も示します。
1. 同じシート内のセル参照
最も基本的な参照文字列のパターンは、同じシート内のセルを指定する場合です。セルアドレス(例:A1、B3など)を直接参照文字列として指定できます。
=INDIRECT("A1")
上記の式は、A1セルの値を返します。
=INDIRECT("A1:A5")
上記の式は、A1:A5セルの値を返します。半角のコロン記号(:)を使って連続的な範囲を指定することができます。
しかしこの関数では下記のような非連続範囲の指定ができないので注意してください。
=INDIRECT("A1,A5")
上記の式は、エラーとなります。半角のカンマ記号(,)を使って非連続的な範囲を指定することはできません。
2. 別のシートのセル参照
別のシートのセルを参照する場合、シート名をシングルクォーテーションで囲み、エクスクラメーションマーク(!)を使ってセルアドレスと区切ります。例えば、シート名が”Sheet2″で、そのシートのA1セルを参照する場合、参照文字列は “‘Sheet2’!A1” となります。
=INDIRECT("'Sheet2'!A1")
上記の式は、Sheet2のA1セルの値を返します。
3. 他のブックのセル参照
INDIRECT関数を使って他のブックのセルを参照することも可能です。他のブックのセル参照では、次のような形式で参照文字列を指定します。
'[ファイル名]シート名!セルアドレス'
例えば、同じフォルダ内の「SampleWorkbook.xlsx」というブックの「Sheet1」というシートのA1セルを参照する場合、次のような式を使用します。
=INDIRECT("'[SampleWorkbook.xlsx]Sheet1'!A1")
他のディレクトリにあるブック参照
他のディレクトリにあるブックを参照する場合、ファイルパスを含めた形式で参照文字列を指定します。ただし、INDIRECT関数では他のブックを閉じた状態で参照することができないため、参照先のブックを開いた状態で使用する必要があります。
'[ファイルパス\[ファイル名]]シート名!セルアドレス'
例えば、「C:\Documents\ExcelFiles」というフォルダ内の「SampleWorkbook.xlsx」というブックの「Sheet1」というシートのA1セルを参照する場合、次のような式を使用します。
=INDIRECT("'C:\Documents\ExcelFiles\[SampleWorkbook.xlsx]Sheet1'!A1")
上記の式は、指定されたフォルダにあるブックの「Sheet1」シートのA1セルの値を返します。ただし、この方法は参照先のブックが開いている場合に限り機能します。
4. 名前範囲の参照
Excelでは、特定のセル範囲に名前を付けることができます。この名前範囲をINDIRECT関数で参照することも可能です。例えば、A1:A10セル範囲に「SampleRange」という名前を付けた場合、参照文字列は “SampleRange” となります。
=INDIRECT("SampleRange")
上記の式は、名前範囲「SampleRange」に対応するセル範囲(A1:A10)を返します。ただし、INDIRECT関数は基本的に単一のセルを参照する関数であるため、名前範囲を使用する場合でも、通常は他の関数と組み合わせて使用します。例えば、以下の式では、名前範囲「SampleRange」内の数値の合計を計算しています。
=SUM(INDIRECT("SampleRange"))
5. R1C1形式のセル参照
R1C1形式は、行番号と列番号を使用してセルを参照する方法です。この形式では、「R」に続く数字が行番号を、「C」に続く数字が列番号を示します。例えば、「R1C1」はA1セルを、「R2C3」はC2セルを参照します。INDIRECT関数でR1C1形式を使用する場合、第2引数にFALSEを指定します。
=INDIRECT("R1C1", FALSE)
上記の式は、A1セルの値を返します。
6. 相対参照と絶対参照の組み合わせ
INDIRECT関数では、相対参照と絶対参照を組み合わせて使用することもできます。例えば、現在のセルから2行下、3列右のセルを参照する場合、次のような式を使用します。
=INDIRECT("R[2]C[3]", FALSE)
上記の式は、現在のセルから2行下、3列右のセルの値を返します。
これらのパターンを組み合わせることで、INDIRECT関数を柔軟に活用することができます。参照文字列を動的に変更することによって、さまざまなシチュエーションでのセル参照を効率化できるでしょう。
その他の情報
前のページ:INDIRECT関数の参照文字列指定の基本
INDIRECT関数の活用に関する別の記事
以下のページからINDIRECT関数の活用に関する別の記事を確認できます。