✅ INDIRECTとは?

INDIRECT(インダイレクト)関数は、 文字列をセル参照として扱うことができる関数です。

  • 「A2」などの文字列をセル参照に変換
  • 参照先をセルの値で切り替える
  • シート名を動的に変更
  • 月別シートを自動参照
  • SUM・VLOOKUP・INDEXなどと組み合わせて最強

Excelで“動的な参照”を作りたいときに欠かせない関数です。

🔍 INDIRECT関数の書式

コード

=INDIRECT(参照文字列, [A1形式])

引数の意味

  • 参照文字列:セル参照を表す文字列(例:”A2″)
  • A1形式(任意):TRUE(A1形式)/FALSE(R1C1形式)

📘 基本例:文字列「A2」をセル参照として扱う

A列B列
100A2

コード

=INDIRECT(B2)

100 (B2 の文字列 “A2” を参照として解釈)

🎯 行番号をセルで指定して参照を切り替える

A列B列
1002
2003

コード

=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 の違い(実務で重要)

目的INDIRECTINDEX
文字列から参照を作る×
行列番号で参照
行列挿入に追従×
安定性
速度

動的参照は INDIRECT、安定した参照は INDEX が最適。

📝 まとめ:INDIRECTは“動的参照の最強ツール”

  • 文字列をセル参照として扱える
  • 行・列・シート名を動的に切り替え
  • 月次集計・複数シート参照に最強
  • VLOOKUP・SUM と組み合わせると強力
  • INDEX と使い分けると完璧

Excelで柔軟な参照を作るなら必ず覚えておきたい関数です。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です