【Excel】連動プルダウン(2段階ドロップダウン)を作る方法|INDIRECT関数で簡単設定

「部署を選んだら、担当者の選択肢も自動で絞り込みたい」——そんな仕組みをExcelで作りたい方向けの記事です。

この記事では、Excelで「1つ目の選択に応じて、2つ目の選択肢が変わる」連動プルダウン(2段階ドロップダウン)を作る方法を解説します。

  • 階層的な選択肢の基本的な考え方
  • 実際の作成手順(データ準備〜入力規則の設定)
  • つまずきやすい注意点
  • 実務で使える簡単な具体例

どんな場面で使うか

 

連動ドロップダウンは、入力ミスを減らしたい場面で役立ちます。
たとえば、次のようなケースです。

  • 問い合わせ管理:
    • 1段目「部署」
    • 2段目「担当者」
  • 経費申請:
    • 1段目「費目」
    • 2段目「詳細項目」
  • 商品管理:
    • 1段目「カテゴリ」
    • 2段目「商品名」

1段目の選択内容に合わせて2段目が絞り込まれるので、候補が多い表でも選びやすくなります。


基本説明

 

階層的な選択肢は、次の2ステップで考えると分かりやすいです。

  1. 1段目の候補一覧を用意する
  2. 1段目の各候補に対応する2段目一覧を用意する

Excelでは、これらの一覧に「名前」を付けて、入力規則(データの入力規則)のリストとして使います。

ここでいう「名前」は、Excelの「数式」タブにある「名前の管理」で設定する名前です。


手順

 

以下は、A列に1段目(カテゴリ)、B列に2段目(商品)を入力する例で解説します。

1. 元データを作る

 

Excelのmasterシートに元データを入力した配置例

別シート(例:master)に、以下のようなリストを作成します。

  • カテゴリ一覧:果物, 飲み物, お菓子
  • 果物の一覧:りんご, みかん, バナナ
  • 飲み物の一覧:水, お茶, コーヒー
  • お菓子の一覧:せんべい, チョコ, クッキー

2. 名前を定義する

 

名前の管理ダイアログでcategory・果物・飲み物・お菓子を定義した画面

「数式」→「名前の管理」で、次のように名前を作ります。

  • category(1段目の候補全体)
  • 果物(果物に対応する2段目候補)
  • 飲み物(飲み物に対応する2段目候補)
  • お菓子(お菓子に対応する2段目候補)

3. 1段目の入力規則を設定する

 

A2セルのデータ入力規則ダイアログ

入力シートのA2セルを選択し、 「データ」→「データの入力規則」→「リスト」で、元の値を次にします。

=category

4. 2段目の入力規則を設定する

 

B2セルのデータ入力規則ダイアログ

入力シートのB2セルを選択し、 「データ」→「データの入力規則」→「リスト」で、元の値を次にします。

=INDIRECT(A2)

これで、A2で選んだカテゴリ(例:果物)に応じて、B2の候補が変わります。


サンプル例(実務イメージ)

 

手順ではカテゴリ→商品の例で解説しましたが、実務では次のような使い方が多いです。

たとえば問い合わせ記録で、

  • A列:部署(営業部、総務部、開発部)
  • B列:担当者(部署ごとに異なる)

という入力欄を作ると、部署に合わない担当者を選ぶミスを減らせます。

「入力ルールがあるだけでミスが減る」ので、日々の入力業務で効果を感じやすい改善です。


よくあるエラー・注意点

 

1. 名前と選択値が一致していない

 

INDIRECT(A2) は、A2の文字列と同じ名前を参照します。
そのため、A2で「飲み物」を選ぶなら、名前も正確に「飲み物」である必要があります。

  • 全角/半角の違い
  • 余分なスペース
  • 表記ゆれ(例:開発部 と 開発 部)

があるとエラーになります。

2. 2段目に古い選択が残る

 

A2の値を変更した後、B2には以前の値が残ることがあります。
この状態だと見た目上は正しく見えても、実際には不整合が起きます。

対策

  • 運用で「1段目を変えたら2段目を再選択」と決める
  • 必要ならVBAで1段目変更時に2段目をクリアする

3. 名前に使える文字の制限

 

Excelの名前にはルールがあります(先頭文字や記号など)。
日本語名でも使えますが、将来的な保守性を考えると、英数字ベースの名前(例:cat_fruit)で管理する方法もおすすめです。


まとめ

 

Excelの階層的な選択肢(連動ドロップダウン)は、次のポイントを押さえると作れます。

  • 1段目と2段目のリストを分けて準備する
  • 「名前の定義」を使って候補範囲を管理する
  • 2段目は INDIRECT で1段目の値を参照する
  • 表記ゆれやスペースなど、実務上の注意点を先に潰す

最初は少し手間ですが、入力ミスの削減に直結します。
まずは2段階(カテゴリ→項目)から作ってみると、理解しやすいです。

コメント

タイトルとURLをコピーしました