【Excel】これできたの?! 2段階/3段階ドロップダウンリスト★
こんにちは、HARUです。
今回は表に設定したドロップダウンリストを、2段階、3段階と連動させていく方法をご紹介します。
たとえば下図のように、営業エリアのブロック名、販売拠点名、さらに各拠点に在籍している社員の氏名を入力していく表があったとします。
こんなとき、B列で特定のブロック名(営業本部)を選択すると、C列ではその営業本部が管轄する販売拠点が選択でき、さらにD列でその支店の構成メンバーを選択できるととても便利ですよね。
B列で「関西営業本部」を選択すれば、C列では関西営業本部が管轄している支店だけがリストに表示され、ここで「大阪中央支店」を選択すれば、大阪中央支店に所属しているメンバーだけが抽出される、といったイメージです。
今後、販売するエリアが拡大したり、各販売拠点でメンバーの追加がされたりすることも想定した設定方法を解説していきます。
ぜひご一読いただき、ご自身の業務で実践してみてください!
リスト化するマスターデータの準備
2段階/3段階と連動するドロップダウンリストを構築するには、各営業本部がどの販売拠点を管轄しているかをまとめた表(Sheet2)と、各販売拠点にどのメンバーが在籍しているかをまとめた表(Sheet3)を用意します。
マスター情報の集約
(Sheet2)各営業本部名を見出しに置き、各営業本部が管轄する販売拠点名をそれぞれの列に入力しておきます。
(Sheet3)各販売拠点名を見出しに置き、各々に在籍しているメンバーをそれぞれの列に入力しておきます。
テーブル化
(Sheet2)表にあるいずれかのセルをアクティブにしたら、リボンの「挿入」タブを開き、「テーブル」のアイコンをクリックします。
「テーブルの作成」ダイアログボックスが表示されますので、すべての営業本部名と各販売拠点名がデフォルトで指定されたデータ範囲に収まっていることと、「先頭行をテーブルの見出しとして使用する」にチェックが入っていることを確認したら"OK"で決定します。
(Sheet3)でも同じ要領でテーブルを設定しておきます。
名前の定義
テーブル化した表にあるいずれかのセルをアクティブにすると、「テーブルデザイン」タブが有効になります。
タブを切り替え、「テーブル名」でテーブルに名前をつけます。
(Sheet2)各販売拠点一覧の名前は「拠点」としておきます。
(Sheet3)販売拠点ごとのメンバー一覧の名前は「氏名」としておきます。
ワークシート左上の名前ボックスを開くと、「拠点」と「氏名」が追加されています。
これらをクリックすると、それぞれテーブル範囲が選択されます。
次に、(Sheet3)メンバーを在籍拠点ごとにグループ化し、そのグループ名を在籍している各販売拠点名にします。
すべての販売拠点で1つずつやっていくと相当時間がかかりますので、次の手順で一括設定しましょう。
①対象範囲を選択した状態で、リボンの「数式」タブを開きます。
②「定義された名前」グループにある、「選択範囲から作成」をクリックします。
③今回は行見出しとなっている各販売拠点ごとに名前をつけたいので、「上端行」にチェックしてOKボタンで決定します。
名前ボックスのリストを開くと、すべての販売拠点名が定義されたことが確認できます。
たとえばここで「札幌第二支店」を選択すると、札幌第二支店にカテゴライズされたメンバーが選択されます。
下準備としてはこれで完了です。
連動するドロップダウンリストの挿入
1段階ドロップダウンリスト
(Sheet1)
①ブロック名を入力する範囲をすべて選択します。
②リボンの「データ」タブを開き、「データの入力規則」のアイコンをクリックします。
③「設定」タブの「入力値の種類」から"リスト"を選択します。
④「元の値」の欄に次のように入力します。
【=INDIRECT("拠点[#見出し]")】
indirectは、間接、間接的という意味を持つ英語です。
今回INDIRECT関数で参照しているのは、Sheet2で「拠点」と名前をつけたテーブル範囲における「見出し」の部分です。
要はブロック名(=営業本部名)ですね。
ここまで入力できたら、OKボタンで閉じます。
B列にブロック名が選択できるドロップダウンリストが挿入されました。
「首都圏営業本部」を選択しておいて、次に2段階目のドロップダウンリストを設定します。
2段階ドロップダウンリスト
①支店名を入力する範囲をすべて選択します。
②リボンの「データ」タブを開き、「データの入力規則」のアイコンをクリックします。
③「設定」タブの「入力値の種類」から"リスト"を選択します。
④「元の値」の欄に次のように入力します。
【=INDIRECT("拠点["&B2&"]")】
今回INDIRECT関数で参照しているのは、「拠点」と名前のつけた範囲におけるB2セルの情報、要は1段階目で選択した営業本部名が管轄する各拠点のテーブルです。
ちなみに、支店名を入力する範囲をすべて選択した状態でB2セルだけを参照するような数式に見えますが、この入力規則を設定すると参照セルもB2セル、B3セル、B4セルとスライドしていきます。
ここまで入力できたら、OKボタンで閉じます。
これによって、C2セルでは首都圏営業本部が管轄している販売拠点が表示されます。
「東京中央支店」を選択しておいて、次に3段階目のドロップダウンリストを設定します。
3段階ドロップダウンリスト
①氏名を入力する範囲をすべて選択します。
②リボンの「データ」タブを開き、「データの入力規則」のアイコンをクリックします。
③「設定」タブの「入力値の種類」から"リスト"を選択します。
④「元の値」の欄に次のように入力します。
【=INDIRECT("氏名["&C2&"]")】
今回INDIRECT関数で参照しているのは、「氏名」と名前のつけた範囲におけるC2セルの情報、要は2段階目で選択した支店に在籍する各メンバーのテーブルです。
ここまで入力できたら、OKボタンで閉じます。
これによって、D2セルでは東京中央支店に在籍しているメンバーが表示されます。
2段階、3段階ドロップダウンリストが完成しました。
選択内容に応じて次段階のリストがどのように変化するか、色々と触れて試してみてくださいね!
選択データの追加・削除
マスターデータにテーブルを設定したことで、販売拠点の拡大やメンバーの追加にも対応できます。
たとえば、ブロック名のリストに表示されている「九州営業本部」の情報を、(Sheet2)のマスターデータから削除します。
これに連動して、ブロック名のリストから九州営業本部がなくなります。
そして、マスターデータに改めて九州営業本部の情報を追加すると、テーブル範囲が拡張され、リストの選択肢にも自動で追加されます。
マスターデータの追加・削除に柔軟に対応できるため、2段階、3段階と連動させる必要がないケースでも、ドロップダウンリストの参照範囲にはテーブルを設定しておくことをおすすめします。
リストの空白を一括変換する
各営業本部が管轄する拠点数や各支店に在籍するメンバーの人数がバラバラのため、今回の手順で名前を定義すると一部のリストに空白が混ざります。
リストを開いたときに、デフォルトでこの空白データが選択されていることもあります。
マスターデータが数種類であればそれぞれのデータ範囲に1つずつ名前をつけていっても良いですが、サンプルのように情報量の多いリストの場合は一括で設定した方が効率的です。
この副作用で生じるリストの空白が気になるときは、マスターデータの空白セルを"-"(ハイフン)や"*"(アスタリスク)などのダミーの文字列で埋めておきましょう。
(Sheet2)
①マスターデータの範囲をすべて選択します。
②キーボードの[Ctrl]+[G]→[Alt]+[S]を順に押して「選択オプション」ダイアログボックスを開きます。
③[K]で「空白セル」にチェックし、[Enter]で決定します。
これにより、対象範囲に散在する空白セルをまとめて選択できます。
そして、アクティブセルに"-"(ハイフン)を入力し、[Ctrl]+[Enter]を押します。
選択していたすべての空白セルに、"-"(ハイフン)が一括入力されます。
こうすることで、リストの余白には"-"(ハイフン)が表示されます。
(Sheet3)氏名のマスターデータでも同じ要領で空白セルを埋めておきましょう。
いかがでしたか?
今回は、ドロップダウンリストを2段階、3段階と連動させる方法をご紹介しました。この手順をおさえておくと、さらに4段階、5段階と続くケースにも応用できます。
名簿やアンケートなど、日々の業務に合わせて使ってみてくださいね!
↓↓記事の内容を動画で解説しています↓↓
※本記事の委細が動画収録当時のバージョン・解説内容と異なる場合があります。
↓↓Excel操作をとにかく高速化したい方へ↓↓
気軽にクリエイターの支援と、記事のオススメができます!