✅ INDIRECTとは?
INDIRECT(インダイレクト)関数は、 文字列をセル参照として扱うことができる関数です。
- 「A2」などの文字列をセル参照に変換
- 参照先をセルの値で切り替える
- シート名を動的に変更
- 月別シートを自動参照
- SUM・VLOOKUP・INDEXなどと組み合わせて最強
Excelで“動的な参照”を作りたいときに欠かせない関数です。
🔍 INDIRECT関数の書式
コード
=INDIRECT(参照文字列, [A1形式])
引数の意味
- 参照文字列:セル参照を表す文字列(例:”A2″)
- A1形式(任意):TRUE(A1形式)/FALSE(R1C1形式)
📘 基本例:文字列「A2」をセル参照として扱う
| A列 | B列 |
|---|---|
| 100 | A2 |
コード
=INDIRECT(B2)
→ 100 (B2 の文字列 “A2” を参照として解釈)
🎯 行番号をセルで指定して参照を切り替える
| A列 | B列 |
|---|---|
| 100 | 2 |
| 200 | 3 |
コード
=INDIRECT("A" & B2)
→ B2 が 2 → A2 を参照 → B2 が 3 → A3 を参照
→ 参照先を動的に切り替えられる
🎯 列を動的に切り替える(COLUMNと組み合わせ)
コード
=INDIRECT(CHAR(64 + C2) & "1")
C2=1 → A1 C2=2 → B1 C2=3 → C1
🔥 シート名をセルで切り替える(実務で最も使う)
| A列 |
|---|
| 1月 |
| 2月 |
| 3月 |
コード
=INDIRECT("'" & A2 & "'!B5")
→ A2 が「1月」なら 1月シートの B5 を参照 → 月次集計で最強。
🔥 INDIRECT × SUM(複数シートを合計)
コード
=SUM(INDIRECT("'" & A2 & "'!B2:B10"))
→ A2 のシート名の範囲を合計。
🧩 INDIRECT × VLOOKUP(参照先を切り替える)
コード
=VLOOKUP(D2, INDIRECT("'" & E2 & "'!A2:C100"), 3, FALSE)
- D2:検索値
- E2:参照したいシート名
→ シート名を変えるだけで検索先が変わる。
🧩 INDIRECT × ADDRESS(完全動的参照)
コード
=INDIRECT(ADDRESS(B2, C2))
→ B2 行 × C2 列 のセルを参照。
📅 月次シートの自動参照(最強パターン)
| A列 |
|---|
| 2026-01 |
| 2026-02 |
| 2026-03 |
コード
=INDIRECT("'" & TEXT(A2, "yyyy-mm") & "'!C5")
→ 日付からシート名を自動生成して参照。
🛠 よくあるミスと注意点
1. 参照文字列は“正しい形式”で書く必要がある
例:
コード
"A2" → OK
"A 2" → NG
2. シート名にスペースがある場合は ' で囲む
コード
=INDIRECT("'売上 データ'!A1")
3. INDIRECT は“参照が固定される”
→ 行列の挿入・削除に追従しない → 必要に応じて使い分ける
4. 外部参照の INDIRECT は閉じたブックでは動かない
→ 開いているブックのみ有効
📊 INDIRECT と INDEX の違い(実務で重要)
| 目的 | INDIRECT | INDEX |
|---|---|---|
| 文字列から参照を作る | ◎ | × |
| 行列番号で参照 | ◎ | ◎ |
| 行列挿入に追従 | × | ◎ |
| 安定性 | △ | ◎ |
| 速度 | △ | ◎ |
→ 動的参照は INDIRECT、安定した参照は INDEX が最適。
📝 まとめ:INDIRECTは“動的参照の最強ツール”
- 文字列をセル参照として扱える
- 行・列・シート名を動的に切り替え
- 月次集計・複数シート参照に最強
- VLOOKUP・SUM と組み合わせると強力
- INDEX と使い分けると完璧
Excelで柔軟な参照を作るなら必ず覚えておきたい関数です。
コメントを残す