INDIRECT関数 – 検索/行列

INDIRECT関数 – 文字列で指定した参照先を動的に参照する関数


1. 使い方と活用例

INDIRECT関数は、セル参照や範囲名などを文字列として指定し、その文字列が示すセルや範囲を参照する関数です。
参照先を文字列として動的に制御できるため、シート間参照や複数表の切り替え、入力内容に応じた自動参照に活用されます。

2. 基本の書式

=INDIRECT(ref_text, [a1])

3. 引数の説明

  • ref_text – 必須。参照したいセルまたは範囲を文字列で指定(例:”A1″、”Sheet2!B3″)。
  • [a1] – 省略可能。参照形式を指定(TRUE=A1形式、FALSE=R1C1形式)。既定値は TRUE。

4. 使用シーン

  • ユーザーが指定したセル番地に応じて、参照先を動的に変更したい場合。
  • シート名を入力セルから指定し、複数シートのデータを1つのセルで切り替えたい場合。
  • 定義された範囲名を文字列として扱い、柔軟な参照処理を行いたい場合。

5. 応用のポイント

INDIRECT関数の参照先は常に変わらない固定参照として扱われます。
そのため、セルを移動・コピーしてもINDIRECTで指定した参照は変わりません。
ただし、参照先のシートが削除された場合や名前が無効な場合はエラーになります。
また、INDIRECTはリアルタイムに再計算されるため、大量に使用するとパフォーマンスが低下する場合があります。

6. 具体例とその解説

セル A1 に “B2” と入力されているとき、次の式はセル B2 の値を返します。

=INDIRECT(A1)

シート名を入力して、別シートを参照する場合

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

A1 に “売上表” と入力されていれば、=INDIRECT("'売上表'!B2") と等しくなり、該当シートのB2セルを参照します。

7. 関連関数の紹介

  • ADDRESS関数 – 行番号と列番号からセル参照を文字列で作成する関数
  • OFFSET関数 – 指定セルからの相対位置で参照を返す関数
  • INDEX関数 – 範囲内の指定行・列の値を返す関数
  • CHOOSE関数 – 指定した番号に応じた値や範囲を返す関数
  • FORMULATEXT関数 – セル内の数式を文字列として返す関数

8. まとめ

INDIRECT関数は、文字列を通じてセルや範囲を柔軟に参照できる強力な関数です。
ユーザーの入力や関数の結果に応じて参照先を動的に変更できるため、複雑な帳票やテンプレートの自動化に大きく貢献します。

9. 対応バージョン

Excel 2003以降のすべてのバージョンで使用可能です。
Excel 365、Excel 2019、Excel Online にも対応しています。