セルの範囲指定を動的に変えられるINDIRECT関数-GSS/Excel/関数
Excel INDIRECT関数の使い方を徹底解説
INDIRECT関数は、文字列として表された範囲参照を実際の範囲参照に変換する関数です。この関数は、動的な範囲参照を作成する場合や、別のセルに基づいて範囲参照を作成する場合に役立ちます。以下では、INDIRECT関数の詳細について説明します。
INDIRECT関数の使い方
INDIRECT関数の基本的な構文は以下の通りです。
=INDIRECT(ref_text, [a1])
ref_textは文字列で表された範囲参照であり、a1は論理値で、省略可能です。a1がTRUEの場合、ref_textはA1形式として解釈されます。a1がFALSEの場合、ref_textはR1C1形式として解釈されます。
文字列として表された範囲参照
文字列として表された範囲参照は、例えば以下のようになります。
"A1":セルA1を参照する
"A1:B5":セルA1からB5までの範囲を参照する
"Sheet1!A1:B5":Sheet1というシートのセルA1からB5までの範囲を参照する
これらの文字列をINDIRECT関数のref_text引数に渡すことで、それぞれの範囲参照を実際の範囲参照に変換することができます。
動的な範囲参照の作成
INDIRECT関数を使用することで、動的な範囲参照を作成することができます。例えば、以下のようにセル参照を含む文字列を作成することができます。
="A1:" & B1
この式は、セルB1の値に基づいて、セルA1から参照範囲を動的に決定することができます。次に、この文字列をINDIRECT関数に渡すことで、参照範囲を実際の範囲参照に変換することができます。
INDIRECT関数の使用例
シート内のセルA1に「Sheet2」という文字列が入力されており、そのセルの値を利用して、シート2のB2セルの値を取得する場合、通常は以下のような式を使用する必要があります。
=Sheet2!B2
INDIRECT関数を使うと、以下のように式を書くことができます。
=INDIRECT("'"&A1&"'!B2")
この式では、文字列「'」、「Sheet2」、「'!B2」という3つのテキスト文字列を連結して、シート2のB2セルを参照しています。つまり、INDIRECT関数は、A1セルの値を元に、文字列を組み合わせてB2セルの値を参照しています。
このように、INDIRECT関数を使用することで、テキスト文字列から実際のセル参照を作成することができます。これにより、複数のシートからデータを参照する場合など、より柔軟かつ効率的にシート間の参照を行うことができます。