エクセルでデータ入力をするとき、1つ目の項目を選んだら、2つ目の項目の選択肢が自動で切り替わってほしいと思ったことはありませんか?例えば「都道府県」を選んだら、隣のセルではその都道府県にある「市区町村」だけが表示されるような仕組みです。この「プルダウンの連動」は、入力ミスを減らし、作業をスムーズにするために非常に役立ちます。
一見すると難しそうに感じる設定ですが、コツさえつかめば誰でも簡単に作ることができます。この記事では、エクセルのプルダウンを複数連動させる方法を、初心者の方でも迷わないように分かりやすく解説します。設定がうまくいかないときの対処法もあわせて紹介するので、ぜひ最後まで読んで日々の業務に役立ててください。
エクセルのプルダウンを複数連動させるメリットと基本の仕組み

エクセルでプルダウン(ドロップダウンリスト)を連動させると、単に入力が楽になるだけでなく、データ管理の精度が格段に向上します。まずは、この機能を使うことでどのようなメリットがあるのか、そしてどのような仕組みで動いているのかを整理しておきましょう。基本を理解することで、応用的な設定もスムーズに行えるようになります。
入力ミスを防いで作業効率を劇的に上げる理由
プルダウンを連動させる最大のメリットは、「関連性のないデータの入力を物理的に防げる」という点にあります。例えば、商品カテゴリーで「家電」を選んでいるのに、具体的な商品名として「りんご」を選択できてしまうと、後でデータの集計や分析をするときに大きな修正の手間が発生してしまいます。
あらかじめ選択肢を絞り込んでおくことで、入力者は迷うことなく正しいデータを選ぶことができます。これにより、キーボードで文字を打ち込む手間が省けるだけでなく、表記ゆれ(「パソコン」と「PC」が混在するなど)も防止できます。結果として、確認作業や修正作業が減り、チーム全体の作業効率が劇的に向上するのです。
「INDIRECT関数」と「名前の定義」の役割を知ろう
複数のプルダウンを連動させる際、重要になるのが「名前の定義」と「INDIRECT(インダイレクト)関数」の組み合わせです。エクセルには、特定のセル範囲に好きな名前を付ける機能があります。これを「名前の定義」と呼び、例えば東京都の市区町村リストに「東京都」という名前を付けて保存しておくことができます。
そして、INDIRECT関数は「セルに入力された文字列を、そのまま範囲名やセル参照として扱う」という特殊な働きをします。1つ目のプルダウンで「東京都」を選んだとき、INDIRECT関数がその「東京都」という文字を読み取り、「東京都という名前が付いた範囲」をリストとして呼び出してくれるのです。これが連動の魔法の正体です。
どのような場面で連動プルダウンが役立つのか
この機能は、あらゆるビジネスシーンで活用されています。最もポピュラーなのは、住所入力における「都道府県 > 市区町村」の選択です。その他にも、見積書作成での「商品分類 > 商品名」、人事管理での「部署名 > 担当者名」、あるいは在庫管理での「倉庫名 > 棚番号」など、階層構造を持つデータであれば何にでも応用可能です。
また、プライベートでも家計簿の「費目 > 内容」の整理や、旅行計画の「エリア > 観光スポット」のリスト化などに便利です。一度設定のやり方を覚えてしまえば、あらゆる表作成に応用がきくため、エクセルスキルの中でも非常にコスパの良いテクニックと言えるでしょう。これからの解説を参考に、ぜひご自身の業務に当てはめてみてください。
【2段階】エクセルで連動するプルダウンを作成する具体的手順

それでは、具体的に2つのプルダウンを連動させる手順を解説します。ここでは例として、1つ目のリストで「部署」を選び、2つ目のリストでその部署に所属する「社員名」が表示される仕組みを作ってみましょう。操作は大きく分けて3つのステップになりますが、一つひとつ丁寧に進めれば決して難しくありません。
ステップ1:連動させるための元データ表を準備する
まず最初に、プルダウンの選択肢となる「元データ」を準備します。新しいシートを作成し、1行目に大項目(部署名など)を並べ、その下に属する小項目(社員名など)をリストアップしてください。このとき、1行目の見出しの名前は、後ほど「名前」として使うため、空白を含まないシンプルなものにするのがコツです。
【表のイメージ】
| 営業部 | 総務部 | 企画部 |
|---|---|---|
| 田中さん | 佐藤さん | 高橋さん |
| 鈴木さん | 伊藤さん | 渡辺さん |
このように、縦方向にリストを並べるのが基本の形です。リストの数にバラつきがあっても問題ありません。また、この元データが入ったシートは、入力用のシートとは別にしておくと、誤ってデータを消してしまうリスクを減らせるのでおすすめです。シート名を「マスタ」など分かりやすいものに変えておくと管理が楽になります。
ステップ2:「名前の定義」で各グループに名前を付ける
次に、作成したデータ範囲に「名前」を付けます。営業部のメンバーが並んでいるセル範囲(見出しを含まない範囲)をドラッグして選択してください。次に、エクセルの画面左上にある「名前ボックス」(現在のセル番地が表示されている場所)をクリックし、そこに「営業部」と入力してEnterキーを押します。
同じ作業を総務部、企画部に対しても行います。このとき、「1行目の見出しと全く同じ文字列」を名前として登録することが、連動させるための絶対条件です。もし複数の範囲をまとめて設定したい場合は、範囲全体を選択した状態で「数式」タブの「選択範囲から作成」を使うと、上端行の名前を自動で一括登録できるので便利です。
ステップ3:INDIRECT関数を使って連動設定を行う
いよいよ入力用シートでプルダウンの設定を行います。まず、1つ目のプルダウン(部署名)を作ります。セルを選択し、「データ」タブの「データの入力規則」を開き、設定の「リスト」を選んで、元の値に「営業部,総務部,企画部」と直接入力するか、見出し範囲を参照します。
次に、2つ目のプルダウン(社員名)を設定するセルを選択し、同様に「データの入力規則」を開きます。「リスト」を選択したら、元の値のボックスに以下の数式を入力してください。1つ目のプルダウンがセルA2にある場合を想定しています。
=INDIRECT($A$2)
この数式を入れることで、「A2セルに書いてある文字と同じ名前の範囲をリストとして表示せよ」という命令になります。OKボタンを押した際、「元の値はエラーと判断されます」と警告が出ることがありますが、A2セルが空欄のときに出るものなので、そのまま「はい」を押して進めて大丈夫です。
ステップ4:正しく連動するか動作を確認してみよう
設定が完了したら、実際に動くかどうかテストしてみましょう。まず1つ目のプルダウンから「営業部」を選択します。その後、2つ目のプルダウンをクリックしたときに、営業部のメンバーだけが表示されれば成功です。同様に「総務部」に切り替えた際、リストの中身が総務部のメンバーに即座に変わるかを確認してください。
もしリストが何も表示されない場合は、手順2で設定した「名前」と、1つ目のプルダウンで選んだ「文字」が1文字でも違っていないか確認しましょう。例えば、名前には「営業部」と付けたのに、リストには「営業グループ」と書いてあると、エクセルはどこを参照すればいいか分からず、エラーになってしまいます。
【3段階以上】より複雑な複数連動プルダウンを作る応用テクニック

2段階の連動ができるようになると、さらに「3段階、4段階と増やしたい」という要望が出てくるはずです。例えば「地域 > 都道府県 > 市区町村」のような形です。基本的な考え方は2段階のときと同じですが、よりスマートに管理し、拡張性を持たせるためのテクニックをいくつかご紹介します。
3段階連動に挑戦!さらに深く絞り込む設定方法
3段階連動を作る場合、基本的には「前のセルの値を参照してINDIRECT関数を使う」という作業を繰り返すだけです。具体的には、2段目のプルダウンに対して名前の定義を行い、3段目の入力規則には「=INDIRECT(2段目のセル)」と設定します。ただし、名前の管理が非常に多くなるため、データの整理が重要になります。
注意点として、例えば「横浜市」という名前を定義する場合、2段目のリストに「横浜市」と表示されていなければなりません。3段階以上になると、名前の重複(違う県に同じ名前の市がある場合など)に気をつける必要があります。その場合は「神奈川県横浜市」のように名前を工夫し、数式で文字列を結合して参照するなどのテクニックが必要になることもあります。
範囲の自動追加に対応!OFFSET関数との組み合わせ
通常の名前の定義では、後からリストに新しい項目(新入社員など)を追加した際、名前の参照範囲を手動で広げなければなりません。これを自動化するには、「OFFSET関数」と「COUNTA関数」を組み合わせて名前に登録する方法があります。これにより、リストにデータを追加するだけでプルダウンにも自動反映されるようになります。
最近の新しいエクセル(Microsoft 365など)を使っている場合は、後述する「テーブル機能」を使う方がもっと簡単ですが、古いバージョンのエクセルとの互換性を保ちたい場合には、このOFFSET関数による動的範囲の設定が非常に有効な手段となります。
複数シートをまたいで連動させる場合の注意点
マスタデータ(選択肢のリスト)が別のシートにある場合、古いエクセルのバージョンでは「データの入力規則」で直接別シートのセルを参照できないことがありました。しかし、現在主流のバージョンでは問題なく参照可能です。ただし、INDIRECT関数を使う際は、参照する名前さえ正しく定義されていればシートを気にする必要はありません。
ただし、シートをまたぐ運用をする際は、マスタシートの名前を変えないように注意しましょう。シート名を変えると、定義した名前がエラーになったり、数式が壊れたりする原因になります。どうしてもシート名を変更したい場合は、数式タブにある「名前の管理」を開き、参照範囲が正しく修正されているか確認する習慣をつけましょう。
メンテナンス性を高めるためのテーブル機能の活用
最も推奨される現代的なやり方は、元データを「テーブル」に変換しておくことです。データ範囲を選択して「Ctrl + T」を押すとテーブル化されます。テーブル化された範囲に名前を付けておけば、データの追加や削除に合わせてプルダウンの選択肢が自動で更新されます。
テーブルを使うと、見た目も綺麗に整うだけでなく、計算式の中で「テーブル名」を使ってデータを扱えるようになるため、後から見返したときに「どのデータを使っているのか」が一目で分かるようになります。メンテナンスのしやすさを考えるなら、ただのセル範囲ではなくテーブル機能を積極的に活用していきましょう。
エクセルのプルダウン連動がうまくいかない時の原因と対策

「手順通りにやったはずなのに、プルダウンの中身が空っぽのまま……」というトラブルはよくあります。連動プルダウンにはいくつか落とし穴があり、特有のルールを知らないと解決に時間がかかってしまいます。ここでは、設定がうまくいかないときによくある原因と、その解決策をまとめました。
「元の値はエラーと判断されます」と表示される場合
「データの入力規則」でINDIRECT関数を入力し、OKを押したときにこのエラーメッセージが出ることがあります。これは多くの場合、「参照先のセルが現在空欄である」ことが原因です。1段目のプルダウンが未選択の状態だと、INDIRECT関数はどこを参照すればいいか分からずエラーを返します。
この場合は、そのまま「はい」を押して設定を完了させて構いません。1段目の項目を何か選択した状態で、2段目のリストが正しく表示されるか確認してください。もし1段目を選んでいるのにエラーが出る場合は、スペルミスや名前の定義漏れを疑いましょう。参照先が空白の場合にエラーメッセージを出したくないなら、IFERROR関数を組み合わせる方法もあります。
名前の定義で「使えない文字」や「空白」が含まれている
これが最もハマりやすいポイントです。エクセルの「名前の定義」には厳しいルールがあります。例えば、「数字から始まる名前」や「スペースが含まれる名前」は登録できません。1段目のプルダウンで「1. 営業部」のような選択肢を作ってしまうと、そのままでは名前に設定できないため、INDIRECT関数で連動させることができなくなります。
また、ハイフン(-)も名前に使えません。もし選択肢にこれらの文字が含まれる場合は、アンダーバー(_)に置き換えるなどの工夫が必要です。どうしてもそのままの表示を使いたい場合は、SUBSTITUTE関数を組み合わせて、数式内で「スペースを消してから参照する」といった高度な設定が必要になります。基本的には、名前に使う文字列はシンプルにするのがベストです。
参照元のセルを変更しても2番目の項目が残る問題
これは不具合ではなくエクセルの仕様なのですが、1つ目のプルダウンを変更しても、2つ目のセルに既に入力されている内容は自動で消えません。例えば、1段目で「営業部」を選び、2段目で「田中さん」を選んだ後、1段目を「総務部」に変えても、2段目のセルには「田中さん」と表示されたままになってしまいます。
これを見逃すと、データの整合性が崩れる原因になります。解決策としては、マクロ(VBA)を使って「1段目が変わったら2段目をクリアする」というコードを書くのが一般的ですが、マクロを使いたくない場合は、条件付き書式を使って「1段目と矛盾している場合はセルを赤く塗る」といった警告を表示させる工夫をすると良いでしょう。
ブックを共有・保存する際のトラブルを回避する
連動プルダウンを設定したファイルを他の人に送ったり、共有フォルダに置いたりする際は注意が必要です。特に、定義した名前が「ブック全体」ではなく「特定のシート内」のみで有効(スコープの設定)になっていると、別のシートから参照したときに動かなくなることがあります。名前を付ける際は、基本的にスコープを「ブック」にしておきましょう。
また、エクセルのバージョンによっては最新の関数(スピル関連など)に対応していない場合があります。古いエクセルを使っている人がいる環境では、なるべくINDIRECT関数のような昔からある機能を使い、最新すぎる機能は避けるのが無難です。保存形式も「.xlsx」形式であることを確認してください。非常に古い「.xls」形式では、一部の制約で動作が不安定になることがあります。
プルダウン連動をさらに使いやすくする便利機能と小技

基本的な連動プルダウンが完成したら、さらに一工夫加えて「使いやすさ」を追求してみましょう。ちょっとした設定の追加で、入力作業のストレスをさらに軽減することができます。ここでは、知っておくと便利な小技や、最新のエクセル機能を使ったモダンな設定方法をいくつか紹介します。
入力リストを動的に増やす!スピル機能の活用
最近のエクセル(Microsoft 365やExcel 2021以降)では、「スピル」という画期的な機能が使えます。これを利用すると、重複を除いたリストの作成や、データの並べ替えが非常に簡単になります。例えば「UNIQUE関数」を使って、マスタから重複のない項目を自動抽出し、それをプルダウンのソースにすることができます。
スピルを利用したリストを参照する場合、範囲指定の末尾に「#(シャープ)」を付けるだけで、データの増減に合わせて自動で範囲を追いかけてくれます。従来のOFFSET関数を使った複雑な数式を使わなくても、シンプルに「=$Z$1#」のような指定で動的なプルダウンが作れるようになったのは、大きな進化と言えるでしょう。
リストが見にくい?フォントや表示幅の工夫
プルダウンのリストが増えてくると、目的の項目を探すのが大変になります。プルダウンのリスト自体のフォントサイズを変える設定は残念ながら標準機能にはありませんが、エクセルの画面ズーム倍率を上げることで対応可能です。また、リストが表示される幅は、そのセル自体の幅に依存します。
選択肢の中に長い名前がある場合は、あらかじめセルの幅を広げておくか、あるいはセルを結合して表示領域を確保しておきましょう。また、リストの並び順も重要です。あらかじめマスタデータを「あいうえお順」に並べ替えておくだけで、入力者が項目を探すスピードは格段に上がります。ちょっとした心遣いが、使いやすさを左右します。
スマホ版エクセルでの動作と互換性のチェック
最近では、スマホやタブレットでエクセルを閲覧・編集する機会も増えています。実は、今回紹介したINDIRECT関数を使った連動プルダウンは、モバイル版のエクセルアプリでも基本的には動作します。ただし、パソコン版ほどスムーズに動かない場合や、名前の定義が反映されるまでに一呼吸置く必要があることもあります。
スマホでの利用を前提とする場合は、あまりにも階層を深くしすぎない(3段階程度に留める)ことや、複雑な数式を多用しないことが安定動作のコツです。また、タッチ操作ではプルダウンの矢印が押しにくいこともあるため、入力セルの周りに十分な余白を持たせるレイアウトにすると、外出先からの入力も快適になります。
エクセルのプルダウン複数連動を活用してミスを防ごう
エクセルのプルダウンを複数連動させる方法は、データの正確性を保ち、入力をスムーズにするための強力な武器になります。最初は「名前の定義」や「INDIRECT関数」といった言葉に戸惑うかもしれませんが、一度仕組みを作ってしまえば、その後の作業時間は劇的に短縮されます。
【今回のポイントまとめ】
・連動プルダウンには「名前の定義」と「INDIRECT関数」を使う
・マスタデータの見出しと定義する名前は、必ず一致させる
・名前にスペースや数字開始はNG!シンプルな名前を付ける
・テーブル機能を活用すれば、項目の追加・削除にも自動対応できる
・動かない時はスペルミスや名前の参照範囲をまずチェックする
エクセルは単なる計算ソフトではなく、工夫次第で非常に便利な入力フォームにもなります。今回ご紹介したテクニックをマスターして、ミス知らずでストレスフリーな表作成を実現してください。まずは2段階の連動からスタートして、徐々に自分に合った便利な設定を試してみることをおすすめします。



