
Excel「名前の定義」特集(5)
INDIRECT関数と名前の合わせ技──選ばれた名前で集計範囲を切り替える
📝この記事で学べること
名前を「文字列として」渡し、動的に参照先を切り替える方法
INDIRECT関数を“安全に”使うための構造設計
実務でエラーが起きにくい「名前 × ドロップダウン」連携
🔍 INDIRECTってなに?
INDIRECT("B2") のように書くと、"B2" という文字列をセル参照に変換して、B2 の値を返してくれる関数です。
🎯 目標:ドロップダウンで商品を選ぶと、対応する売上範囲が合計される!

📂 前提データの作成(例)

🛠 ステップ①:売上を商品別に連続範囲に並べる
INDIRECTが扱えるのは 連続したセル範囲のみ です。

💡 Excelシート上では、売上の順序を商品ごとに並べておくとスムーズです。
🏷 ステップ②:名前を定義する(数式タブ → 名前の定義)

🧪 ステップ③:商品リストを作り、名前「商品リスト」を定義
C2 に以下の式を入力:
=FILTER(UNIQUE(A2:A100), UNIQUE(A2:A100)<>"")
C2:C4 に商品名が抽出されたら、範囲に名前を付ける:
名前:「商品リスト」
参照:=Sheet1!$C$2:$C$4
📩 ステップ④:E2セルにドロップダウン設定(入力規則)
セル E2 を選択
[データ] → [データの入力規則] → 「リスト」
=商品リスト を入力 → OK
💰 ステップ⑤:INDIRECTで集計する
セル F2 に以下を入力:
=SUM(INDIRECT(E2))
→ E2 に「商品A」が入っていれば、INDIRECT("商品A") → =SUM(B2:B3) のように展開されます!

✅ 全体構成まとめ

🧠 よくあるエラーと対策

💬 ChatGPTに聞くときのテンプレート
商品Aや商品Bなどの名前が、売上範囲に定義されています。 E2で選んだ商品名に応じて売上合計を出したいのですが、 INDIRECT関数での式の書き方と注意点を教えてください。
名前 × INDIRECT の構成を伝えれば、かなり的確な回答が返ってきます!
🔚 まとめ:「INDIRECT × 名前」で作る“選べる集計式”
ドロップダウンで対象を選べる
関数が柔軟に切り替わる
名前で定義された範囲なので可読性・管理性が高い!
🔜 次回(第6回):動的な名前定義(OFFSET / INDEX)
データが追加されても壊れない「自動追従する名前」
OFFSETやINDEX関数を使った動的設計
ピボットやグラフに応用できる、プロっぽいExcel