Excelでプルダウンを連動させる方法|都道府県・市区町村のような二段階選択を作ろう

Excel

Excel(エクセル)でプルダウン(ドロップダウンリスト)を使うと、入力ミスが減り効率がアップします。さらに便利なのが、プルダウンを連動(連携)させる方法です。

例えば以下のような場面で活用できます:

  • 「都道府県」を選んだら、その都道府県に対応した「市区町村」がプルダウンに表示される
  • 「カテゴリ」を選んだら、次の項目でそのカテゴリの商品だけが選べる
  • 「部署」を選んだら、その部署のメンバーがプルダウンに表示される

このような二段階のプルダウンを作ることで、データ入力の精度が向上し、作業効率が大幅にアップします。

この記事では、初心者向けに以下の内容をわかりやすく解説します:

  • Excelでプルダウンを連動させる基本的な方法
  • 名前定義とINDIRECT関数の使い方
  • 実際の設定手順とトラブル解決法
スポンサーリンク

プルダウン連動の仕組み

通常のプルダウンとの違い

通常のExcelプルダウン(入力規則)は、固定のリストから選択します。しかしINDIRECT関数と名前定義を組み合わせると、以下のような動的な選択が可能になります:

  1. 最初のプルダウンの選択内容を参照
  2. その内容に基づいて次のプルダウンのリストを自動で変化
  3. 複数段階の選択システムを構築

必要な機能

プルダウン連動には以下の機能を使用します:

  • 名前定義:セル範囲に名前を付ける機能
  • INDIRECT関数:文字列を参照先として使用する関数
  • データの入力規則:プルダウンリストを作成する機能

実際に作ってみよう

例:都道府県と市区町村の二段階選択

ここでは、都道府県を選択すると対応する市区町村が表示されるプルダウンを作成します。

データを準備する

まず、別シートまたは離れた場所にリストを用意します。

A列:都道府県リスト

A1: 東京
A2: 大阪  
A3: 愛知

B〜D列:各都道府県の市区町村

B列(東京)    C列(大阪)    D列(愛知)
B1: 新宿区     C1: 大阪市     D1: 名古屋市
B2: 渋谷区     C2: 堺市       D2: 豊田市
B3: 品川区     C3: 東大阪市   D3: 岡崎市

名前定義を設定する

それぞれの都道府県に対応する市区町村のリストを「名前定義」します。

操作手順

  1. B1:B3を選択(東京の市区町村)
  2. 「数式」タブ →「名前の定義」をクリック
  3. 名前欄に「東京」と入力してOK
  4. 同様にC1:C3を選択して「大阪」、D1:D3を選択して「愛知」と設定

重要なポイント

  • 名前は必ず都道府県プルダウンの選択肢と同じ文字列にする
  • 全角・半角・スペースも完全一致させる
  • 名前に使用できない文字(スペース、記号など)は避ける

1つ目のプルダウン(都道府県)を作成

プルダウンを設置したいセル(例:F1)を選択し、以下の手順で設定します:

  1. 「データ」タブ →「データの入力規則」をクリック
  2. 「設定」タブで「入力値の種類」を「リスト」に変更
  3. 「元の値」に=$A$1:$A$3と入力
  4. 「OK」をクリック

これで都道府県のプルダウンが完成します。

2つ目のプルダウン(市区町村)を連動させる

次に、F2セルに市区町村プルダウンを作成します:

  1. F2セルを選択
  2. 「データ」→「データの入力規則」→「リスト」を選択
  3. 元の値に以下の数式を入力:
=INDIRECT(F1)

動作の仕組み

  • F1で「東京」を選択 → INDIRECT関数が「東京」という名前定義を参照 → B列のリストが表示
  • F1で「大阪」を選択 → INDIRECT関数が「大阪」という名前定義を参照 → C列のリストが表示

応用テクニック

3段階以上のプルダウン

大分類→中分類→小分類のような3段階プルダウンも作成できます:

データ構造例

大分類: 食品、日用品、家電
中分類: 食品_冷凍、食品_生鮮、日用品_清掃、日用品_洗濯
小分類: 食品_冷凍_アイス、食品_冷凍_冷凍食品

数式例

3段階目: =INDIRECT(F1&"_"&F2)

別シートのデータを使用

名前定義を使用すれば、別シートにデータを配置しても問題ありません:

名前定義の参照先例

名前: 東京
参照先: Sheet2!$B$1:$B$10

エラー対策

INDIRECT関数でエラーが発生した場合の対処法:

=IFERROR(INDIRECT(F1),"選択してください")

よくある質問(Q&A)

Q. 名前にスペースが入っていると動かない?

A. INDIRECT関数は完全一致する名前定義を探します。名前にスペースや記号が含まれるとエラーになります。

対処法

  • 「北海道 札幌」→「北海道_札幌」のようにアンダースコアに変更
  • SUBSTITUTE関数を使用:=INDIRECT(SUBSTITUTE(F1," ","_"))

Q. 別シートのデータも使える?

A. 名前定義を使用すれば、別シートにデータを置いても問題ありません。むしろ、データとフォームを分離できるため推奨されます。

Q. データが多い場合はどうする?

A. 以下の方法で対応できます:

  • テーブル機能と名前定義を組み合わせる
  • 動的な名前定義を使用する
  • OFFSET関数で可変範囲を指定する

Q. プルダウンが空白になる場合は?

A. 以下を確認してください:

  • 名前定義の設定が正しいか
  • 参照先のセル範囲にデータがあるか
  • F1セルの値と名前定義が完全一致しているか

実用的な活用例

見積書システム

構成例

分類 → 商品名 → 単価自動入力
建材 → 木材 → 1,000円
建材 → 金属 → 2,000円

申請フォーム

構成例

部署 → 担当者 → 承認者自動選択
営業部 → 田中 → 営業部長
経理部 → 佐藤 → 経理部長

アンケート集計

構成例

年代 → 詳細年齢 → 対応する質問表示
20代 → 20-24歳 → 学生向け質問
30代 → 30-34歳 → 社会人向け質問

まとめ

Excelのプルダウン連動はINDIRECT関数×名前定義で実現できます。主なポイントは以下の通りです:

メリット

  • 入力ミスの削減
  • 作業効率の向上
  • データの整合性確保
  • ユーザビリティの向上

設定のコツ

  • 名前定義は選択肢と完全一致させる
  • データ構造を事前に整理する
  • エラー対策を組み込む
  • 別シートでデータを管理する

応用の可能性

  • 3段階以上の多段階選択
  • 別シートとの連携
  • 動的なデータ更新
  • 自動計算との組み合わせ

コメント

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