今回はエクセルで2段階以上のプルダウンリストを連動させる方法について解説していきます。
動画でも解説しています(おすすめ)
今回の二段階以上のプルダウンリストを連動させる方法について、動画でも解説しています。
本記事では解説しきれなかった関連知識についても詳しく説明しているので、ぜひ参考にしてください。
今回のテーマ
今回やりたいこととしては、エリアでプルダウンを実装して、その選択肢に応じて、営業所の選択肢を連動させて、さらにその営業所の選択肢に応じて、氏名を連動させていくというプルダウンになります。
まずは通常のプルダウンリストの作り方から簡単におさらいしていきましょう。
通常のプルダウンの作り方
まずはプルダウンリストを作りたいセルを選択して、データタブをクリックします。
その中に「入力規則」という項目がありますので、入力規則のアイコンをクリックしましょう。

そうすると、以下のような画面になりますので、「入力値の種類」を「リスト」にして、「元の値」の入力エリアにどのようなプルダウンリストを作成するかを指定していきます。

リストの指定方法は主に
- カンマで項目を区切る方法
- リストとなる項目を範囲指定する方法
の2つがあります。
カンマで項目を区切る方法
まずはカンマで区切る方法です。
画像のように、プルダウンリストにしたい項目を入力して、カンマで区切ることでプルダウンリストを作成することができます。

リストとなる項目を範囲指定する方法
どこかにプルダウンリストの項目にしたいものがまとまっている場合、画像のように範囲選択してプルダウンリストを作成することも可能です。

項目数の増減には対応できませんが、変更などには対応ができます。
項目数が多い場合は直接入力ではなく、範囲選択が良いでしょう。
直接入力か範囲選択のどちらかで項目の指定ができたら、OKをクリックすることでプルダウンが作成できます。
これがプルダウンリスト作成の基本です。
二段階以上のプルダウンリストの作り方
ここから2段階以上の連動するプルダウンリストの作り方について解説していきます。
リストのテーブル化
二段階以上の連動するプルダウンを作るうえで、まず最初にやることとしては「リストのテーブル化」です。
プルダウンにしたいリストを全選択して、「Ctrl + T」でテーブル化のダイアログボックスを出します。
「先頭行をテーブルの見出しとして使用する」にチェックがついていることを確認したら、OKをクリックしましょう。

そうすると、このリスト全体がテーブル化されます。
テーブルに名前をつける
テーブル化をすると、新しくテーブルタブが出てきます。
テーブルタブをクリックすると左側にテーブル名を指定できる入力エリアがありますので、テーブルに名前を必ずつけましょう。

今回は例としてエリア一覧としておきます。つける名前は何でも大丈夫です。
名前の付与が完了したらプルダウンを作りたいセルを選択して、これまでと同様にデータタブの入力規則からリストを選択して、プルダウンリストにしたい項目を指定してきます。
この指定方法がポイントなので、しっかりと抑えておきましょう。
二段階以上の連動するプルダウンを作成するときは、INDIRECT関数を使ってリストを指定していきます。
プルダウンリストを作成する
プルダウンリストにしたい項目の指定方法として、以下の関数を入力していきます。
=INDIRECT(“エリア一覧[#見出し]”)

エリア一覧というのは先ほど作成したテーブルリストの名前です。
[#見出し]は「エリア一覧の中の見出し」という意味になります。

これをINDIRECT関数と組み合わせることで、「エリア一覧という名前がついているテーブルの見出しを参照する」という意味になります。
二段階目のプルダウンリストの作成方法
次に、二段階目のプルダウンリストの作成方法について解説します。
各エリアに名前をつけていく
まずは、各エリアに紐付けられている支店名のセル範囲に名前をつけていきます。
例えば以下の画像のようなイメージです。

まずはリスト全体を選択していきます。
全選択できたら、数式タブの選択範囲から作成をクリックします。
そうすると、「選択範囲から名前の作成」のダイアログボックスが出てきますので、左端列のチェックを外して、上端行のみにチェックが入っている状態で、OKをクリックします。

左上の名前ボックスにある矢印をクリックしてみると、上端行に入力されている値で名前をつけることができました。

試しになにか名前を選択してみてください。
各エリアの支店名が選択されると思います。
これで準備はOKです。
INDIRECT関数で項目範囲を指定する
では、最初に作成したプルダウンと同様に、INDIRECT関数を使ってプルダウンリストを作成していきます。
データの入力規則の部分に、以下の数式を入力していきましょう。
=INDIRECT("エリア一覧["&B3&"]")
こうすることで、エリア一覧というテーブル名がついている範囲の中の、さらにB3セルの値の名前がついている範囲を参照することができます。
B3セルは北海道や東北、関東と名前が変わりますね。
つまり、B3セルに入力されている値によってINDIRECT関数での参照範囲をダイナミックに変更することができるということになります。

これで2段階のプルダウンの作成は完了です。
三段階目のプルダウンリストの作成方法
最後に、3段階目のプルダウンの作り方を解説していきます。
テーブル化&名前の付与
二段階目のプルダウン作成時と同様、プルダウンリストにしたい項目をテーブル化していきます。
名前もしっかりとつけておきましょう。

今回は関東エリアとしておきます。
次に、各支店に所属している従業員のリストに、各支店名の名前をつけていきます。
先ほどと同じやり方で各支店の社員リストの範囲に名前をつけていきます。
やり方は二段階目のプルダウンを作成したときと同様です。

そうすると、各支店名の名前がついていることが確認できるかなと思います。

同じ行程を、全エリア分行います。
これで準備はOKです。
プルダウンリストの作成
そうしたら、これまで同様、データの入力規則にINDIRECT関数を入力していきます。
以下の数式を入力していきましょう。
=INDIRECT(B3&"エリア["&C3&"]")
B3セルは北海道、東北、関東とエリア名が変化します。
C3セルはエリア名によって、そのエリアに存在する支店名が連動してプルダウンリストになるようになっています。
つまり、以下の画像を例にすると、「関西エリアに存在する関西広域第二支店という名前がついているセル範囲をINDIRECT関数で参照している」という意味になります。

こんな感じで連動するプルダウンを作成することができました。
まとめ
今回は二段階以上の連動するプルダウンリストの作り方について解説していきました。
プルダウンとテーブル機能は非常に相性が良いので、セットで覚えておきましょう。
また、複数の名前を一括でつける方法も非常に便利です。
こういった細かいテクニックが時短につながるので、ぜひ覚えておきましょう。
今回の解説はYouTubeでも詳しく解説しています。
本記事では解説しきれなかった他の重要テクニックもふんだんに解説しているので、確実にスキルアップができます。
ぜひご覧ください。