エクセルでデータを入力する際、特定の項目を選択すると次に選べる選択肢が自動で切り替わる仕組みがあると非常に便利です。たとえば「都道府県」を選んだら、次のセルにはその県の「市区町村」だけが表示されるといった連動機能です。
このようなエクセルのプルダウンを連動させて複数のリストを管理する方法をマスターすれば、入力ミスを大幅に減らし、作業スピードを向上させることができます。初心者の方でも設定できるように、わかりやすく手順を解説していきます。
本記事では、定番のINDIRECT関数を使った方法から、最新のFILTER関数を活用したテクニックまで幅広く紹介します。ご自身の利用環境やデータの複雑さに合わせて、最適な設定方法を見つけてみてください。
エクセルでプルダウンを連動させ複数作成するメリットと事前準備

エクセルのプルダウン(ドロップダウンリスト)を連動させることで、データ入力の正確性と効率が劇的に向上します。特に複数の項目を扱う場合、選択肢を絞り込める機能はユーザーにとって非常に親切な設計となります。
入力ミスを未然に防ぐ仕組みづくり
プルダウンを連動させる最大のメリットは、関係のないデータを選択できないように制限できる点です。たとえば「部署」と「担当者」を連動させておけば、営業部を選んだ際に総務部の社員が表示されるといったミスが起こりません。
誤った組み合わせのデータが入力されると、後の集計作業でエラーの原因になります。最初から正しい選択肢しか出ないようにすることで、データのクオリティを高く保つことができるのです。これは多人数でファイルを共有する場合に特に有効です。
作業効率が格段にアップする
膨大なリストの中から目的の項目をスクロールして探すのは、意外とストレスがかかる作業です。複数のプルダウンが連動していれば、大分類から順に絞り込むことで、最短ステップで目的のデータにたどり着けます。
キーボードでの手入力も減るため、タイピングミスによる表記ゆれも解消されます。結果として、データ入力にかかる時間を大幅に短縮でき、より重要な分析業務などに時間を割けるようになります。
設定前に必要なデータの整理方法
連動プルダウンをスムーズに設定するためには、事前のデータ整理が欠かせません。まずは「親」となる大分類のリストと、それに紐付く「子」の中分類リストを書き出してみましょう。別シートに整理しておくと、管理がしやすくなります。
【データ整理の例】
・シート1:入力用の画面
・シート2:マスタデータ(選択肢のリスト)
リストの項目名は、後ほど「名前の定義」という機能で使用するため、重複がないように整理しておくのがポイントです。
名前の定義で使える文字のルール
エクセルでプルダウンを連動させる際は「名前の定義」という機能を使いますが、ここで定義する名前にルールがあります。数字から始まる名前や、空白(スペース)が含まれる名前は登録することができません。
たとえば「1組」はNGですが「第1組」ならOKです。また「営業 担当」のようにスペースを入れたい場合は「営業_担当」のようにアンダーバーでつなぐ工夫が必要です。このルールを忘れるとエラーの原因になるので注意しましょう。
INDIRECT関数で2段階の連動プルダウンを作る基本手順

最も一般的で、古いバージョンのエクセルでも動作する方法がINDIRECT関数を使うやり方です。セルの内容を「参照先」として読み取らせることで、リストを動的に切り替えることができます。
手順1:選択肢のリストに名前を付ける
まずは、連動させたい「子」のリスト範囲をドラッグして選択します。その状態で、画面左上にある「名前ボックス」をクリックし、対応する「親」の項目名を直接入力してEnterキーを押しましょう。
たとえば「東京」に関連する市区町村のリストを選択したら、名前ボックスに「東京」と入力します。これで、エクセルが「東京」という言葉を特定のセル範囲として認識するようになります。これをすべての分類に対して繰り返し行います。
手順2:1つ目のプルダウンを設定する
次に、親となるプルダウンを作成します。入力用のセルを選択し、上部メニューの「データ」タブから「データの入力規則」を開きます。「設定」タブの「入力値の種類」で「リスト」を選びましょう。
「元の値」のボックスをクリックし、親リストの項目(例:東京、大阪など)が入力されている範囲を選択して「OK」を押します。これで、最初のプルダウンが完成し、項目を選択できる状態になります。
手順3:2つ目のプルダウンにINDIRECT関数を入れる
いよいよ連動の設定です。2つ目のセルを選択し、同様に「データの入力規則」を開きます。設定を「リスト」にしたら、「元の値」の欄に「=INDIRECT(A2)」のように入力します。ここでA2は、親のプルダウンがあるセル番地です。
この数式を入れることで、A2で「東京」を選んだときに、自動的に「東京」という名前を付けたセル範囲をリストとして表示してくれます。これで、1つ目の選択内容に応じて2つ目のリストが切り替わるようになります。
INDIRECT関数の数式を入れる際、親セルが空欄だと「元の値はエラーと判断されます。続けますか?」という警告が出ることがあります。これは問題ないので「はい」を選択して進めてください。
うまく連動しない場合の確認箇所
もしリストが表示されない場合は、まず「名前の定義」と「親セルの文字」が完全に一致しているか確認してください。全角と半角の違いや、不要なスペースが入っているだけで、エクセルは別物として判断してしまいます。
また、セルの参照方式にも注意が必要です。数式が「=$A$2」のようにドルマークがついた絶対参照になっていると、他の行にコピーした際に常に2行目しか参照しなくなります。複数の行で使いたい場合は「=INDIRECT(A2)」のように相対参照に直しましょう。
3段階以上の複数連動プルダウンを設定する応用テクニック

「大分類 > 中分類 > 小分類」のように、3つ以上のプルダウンを連動させたい場合も、INDIRECT関数の仕組みを応用すれば実現可能です。手順が増えるだけで、基本的な考え方は2段階の時と同じです。
3段階目のための名前定義を行う
3段階の連動を作る場合、2段階目の選択肢が「名前」として機能する必要があります。たとえば「東京」を選んで「新宿区」が出た場合、次は「新宿区」という名前の付いたリストを3段階目の選択肢として準備します。
「新宿区」という名前で、その下の町名リストなどを範囲登録していきましょう。このように、常に「1つ前のセルで選んだ値」と同じ名前のリストが存在するように、すべての階層で名前の定義を行っていくのがコツです。
入力規則を階層ごとに設定する
2段階目の設定ができているなら、3段階目も同様の数式を使います。3段階目の入力規則の「元の値」には、「=INDIRECT(B2)」と入力します。ここでB2は、2段階目のプルダウンがあるセル番地です。
これで、A列で県を選び、B列で市を選び、C列で町名を選ぶといった、複数階層にわたる連動が完成します。さらに4段階、5段階と増やしたい場合も、隣のセルを参照するINDIRECT関数を追加していくだけで対応可能です。
複雑な階層を管理するコツ
階層が深くなると、名前の定義の数が増えて管理が大変になります。「数式」タブの「名前の管理」を開くと、現在登録されている名前の一覧を確認できます。ここで編集や削除ができるので、設定ミスを見つけた際は活用しましょう。
3段連動時の表示クリア問題
連動プルダウンの弱点として、親の選択肢を変更しても、すでに選ばれている子のセルの内容はそのまま残ってしまうという点があります。これは「東京都 > 新宿区」を選んだ後に、親を「大阪府」に変えても「新宿区」が残る状態です。
これを完全に防ぐにはVBA(マクロ)が必要になりますが、関数だけで対応する場合は、条件付き書式を使って「親と不一致な値が入っている場合はセルを赤くする」といった警告を出す工夫をするのが現実的です。
最新のエクセルならこれ!FILTER関数で連動プルダウンを作る方法

Microsoft 365やExcel 2021以降のユーザーであれば、FILTER関数を使った新しい手法がおすすめです。名前の定義を大量に作成する手間がなく、より柔軟に連動リストを作成できます。
FILTER関数の基本的な仕組み
FILTER関数は、特定の条件に一致するデータだけを抽出する関数です。これを利用して、作業用のセルに「親セルで選ばれた項目に紐付くリスト」を関数でリアルタイムに書き出させ、それをプルダウンのソースにします。
例えば、元データの一覧表から「カテゴリーがAのものだけを抽出する」という数式を組んでおけば、カテゴリーを選択するたびに抽出結果が自動で更新されます。この「抽出された結果」をプルダウンの参照先に指定するわけです。
作業用シートを使った設定手順
まず、別シートにFILTER関数を入力します。数式は「=FILTER(子リストの範囲, 親リストの範囲=入力用セルの番地)」となります。これにより、親セルで選んだ値に対応するリストだけが作業用シートに表示されます。
次に、入力用セルの「データの入力規則」の設定で、「元の値」にFILTER関数を入れた先頭セルを指定します。このとき、セル番地の後ろに「#」を付けて「=Sheet2!$A$2#」のように入力するのがポイントです。
スピル機能と「#」の重要性
最新のエクセルには「スピル」という、1つの数式で複数のセルに結果を表示する機能があります。先ほどの「#」は「スピル範囲演算子」と呼ばれ、FILTER関数で抽出された結果がいくつあっても、その範囲すべてを参照するという意味になります。
これを使えば、選択肢の数が「3つの時」もあれば「10つの時」があっても、自動的にプルダウンの長さを調整してくれます。INDIRECT関数の時に悩まされた「空白の選択肢」が出る問題も、この方法ならすっきりと解決できます。
FILTER関数を使う方法は、名前に使えない文字(数字始まりやスペース)の制限を受けないという大きなメリットがあります。商品コードや型番など、記号を含むデータを扱う場合に非常に強力です。
UNIQUE関数との組み合わせでさらに便利に
元データに重複がある場合は、UNIQUE関数を組み合わせると便利です。「=UNIQUE(FILTER(…))」とすることで、重複を排除したユニークなリストを作成できます。これにより、マスタデータを完璧に整理しなくても綺麗なプルダウンが作れます。
この方法は、日々更新される売上データや在庫リストから、動的に選択肢を作りたい場合に適しています。名前の定義を毎回更新する手間から解放されるため、現代のエクセルユーザーにとって最も効率的な選択肢と言えるでしょう。
連動プルダウンが動かない?エラーの原因と解決策

設定が終わっていざ使おうとしたときに、プルダウンの矢印をクリックしても何も出ない、あるいはエラーが表示されることがあります。よくあるトラブルとその解決方法をまとめました。
「元の値はエラーと判断されます」という警告
INDIRECT関数を入力した際に出るこの警告は、多くの場合「参照先のセル(親)が空欄であること」が原因です。親セルに何も入力されていないと、INDIRECT関数はどこを参照すればいいか分からず、エラーを出してしまいます。
解決策はシンプルで、一度親セルのプルダウンで何か項目を選択してから、子の入力規則を設定し直すことです。それでも直らない場合は、入力したセル番地が間違っていないか、全角の「=」になっていないかを確認しましょう。
リストの一部が消える・空欄が混じる問題
名前の定義で範囲を広めに設定していると、プルダウンの中に大量の「空白」が出てきてしまうことがあります。これは見栄えが悪く、選択しづらいため、範囲をぴったりに設定し直す必要があります。
これを解決するには、前述のFILTER関数を使うか、テーブル機能を利用してください。テーブルを使えば、データの追加に合わせて「名前」の範囲が自動拡張されるため、空白を含ませずに常に最新のリストを維持できます。
エラーを防ぐためのマスタデータのルール
連動プルダウンのトラブルの多くは、元となるマスタデータの不備に起因します。表の中に余計な結合セルがあったり、見出しが2行に分かれていたりすると、関数が正しくデータを拾えなくなることがあります。
| チェック項目 | 解決のポイント |
|---|---|
| 名前の不一致 | 「親セル」と「定義した名前」を完全一致させる |
| 使用不可文字 | 名前にスペースや数字開始の文字を使っていないか |
| 範囲の固定 | 複数行で使うならINDIRECT内は「相対参照」にする |
他のパソコンや古いExcelで動かない場合
FILTER関数などの新しい関数は、古いバージョンのエクセル(2019以前)では動作せず「#NAME?」エラーになります。ファイルを他の人と共有する場合は、相手の使用環境を確認しておくことが重要です。
もし不特定多数のユーザーが使うファイルを配布するのであれば、互換性の高いINDIRECT関数と名前の定義を使った方法で作成するのが最も安全です。自分の作業用か、共有用かによって使い分けるようにしましょう。
エクセルでプルダウンを連動・複数設定する方法のまとめ
エクセルのプルダウンを連動させて複数のリストを管理する方法は、データ入力の正確性と利便性を高めるために欠かせないテクニックです。最初は設定が難しく感じるかもしれませんが、基本を押さえれば誰でも実装できます。
最も確実な方法は「名前の定義」と「INDIRECT関数」を組み合わせる手法です。2段階、3段階と階層を増やす場合も、この仕組みを繰り返すことで対応できます。設定の際は、名前の命名ルールやセルの参照形式に注意しましょう。
一方で、最新のMicrosoft 365を利用しているなら、「FILTER関数」を使った動的なリスト作成が非常におすすめです。名前の定義を管理する手間が省け、データの増減にも柔軟に対応できるため、メンテナンス性が格段に向上します。
【記事の要点まとめ】
・連動プルダウンは入力ミスの防止と効率化に直結する
・基本は「名前の定義」をしてからINDIRECT関数で参照する
・3段階以上の連動も、隣のセルを参照する数式を繋げば可能
・最新版ExcelならFILTER関数でより柔軟に設定できる
・うまくいかない時は「名前の一致」と「参照形式」をチェック
まずはシンプルな2段階の連動から試してみて、慣れてきたら複雑な多段リストや最新関数を使った方法にチャレンジしてみてください。一度この仕組みを構築してしまえば、日々の業務負担を大きく軽減できるはずです。



