Excelでセル参照を扱うとき、文字列として書いたセル参照を実際の参照として使いたい場面があります。そんなときに便利なのが INDIRECT関数 です。この関数を使えば、文字列で指定したセルや範囲を有効な参照に変換して、数式や関数で動的に扱えるようになります。
INDIRECT関数とは?
INDIRECT関数は、文字列で指定されたセル参照を実際の参照として扱えるように変換する関数です。
- 例えば
"A1"
という文字列をA1
セルとして参照可能にします。 - 動的な参照を作りたいときに便利です。
書式
=INDIRECT(参照文字列, [参照形式])
- 参照文字列:文字列で表したセル参照を指定します。例:”A1″ や “Sheet2!B5” など。
- 参照形式(任意):TRUEまたは省略 → A1形式、FALSE → R1C1形式で参照します。
A1形式
- 列にアルファベット、行に数字を使ってセルを指定するExcelの一般的な形式です。
- 例えば A1 は「A列の1行目」を意味します。
- 例:
B3
→ B列3行目のセル
R1C1形式
- Rは行(Row)、Cは列(Column) を意味し、行と列の番号を組み合わせてセルを指定します。
- 例えば R1C1 は「1行1列目」のセルを意味します。
- 例:
R3C2
→ 3行2列目のセル
使用例
- 文字列をセル参照に変換
=INDIRECT("A1")
→ A1セルの値を返します。 - シート名を動的に扱う
=INDIRECT("Sheet2!B3")
→ Sheet2のB3セルの値を返します。 - セルの内容をセル参照として使う
- 例:A1セルに「B5」と入力
=INDIRECT(A1)
→ A1に入力された「B5」を参照として扱い、B5セルの値を返します。
活用例
- 動的な参照:セルに入力されたシート名やセルアドレスを使って参照を切り替える。
- 範囲参照の自動化:月別シートからデータを自動取得するレポート作成に便利。
- 名前定義との組み合わせ:可変範囲を名前で指定して動的に活用。
注意点
- 参照が変化しても自動調整しない
INDIRECT関数で指定した参照は固定されるため、行や列を挿入・削除しても自動調整されません。 - 計算負荷が大きい
INDIRECTは揮発性関数なので、ブックを再計算するたびに計算されます。 - 外部参照の制限
閉じているブックのセルを参照することはできません。
関連関数
- ADDRESS関数:セル参照を文字列として返す
- OFFSET関数:基準セルから指定した行列に移動した参照を返す
- INDEX関数:範囲の指定位置にあるセルの値を返す
まとめ
INDIRECT関数は、文字列をセル参照に変換する便利な関数です。
- 書式:
=INDIRECT(参照文字列, [参照形式])
- 動的なシート参照やセル参照の自動化に活用可能
- 再計算が多いブックでは計算負荷に注意