Excel(エクセル)で複数のプルダウン(ドロップダウン)リストを連動させる

複数のドロップダウンリストを連動する
Excelの一覧

Excel(エクセル)で複数のプルダウン(ドロップダウン)リストを連動させる

使用関数:INDIRECT

データの入力規則「リスト」設定を応用して、3階層のプルダウン(ドロップダウン)リストを連動させる方法です。
3階層のプルダウン(ドロップダウン)リストを連動させる
上図のように、B列セルで選んだ値に従ってC列セルのリストを表示させ、そこで選んだ値から更にD列セルのリストを表示させるという連動型複数段階式の設定方法を図解していきます。セル内容を参照するINDIRECT関数を使いますが、操作は簡単です。

プルダウン(ドロップダウン)リストの選択項目を作り、名前を定義する

プルダウンリストの選択項目用の表は別シートに置きます。シートを追加し、リスト(1)とリスト(2)に表示させる選択肢を下図のような表にまとめて作成しました。
連動するドロップダウンリストのリスト項目表1
リスト(1)はドロップダウンリストで最初に選択する「メニュー」のリスト項目になります。
ドロップダウンリストで最初に選択する「メニュー」のリスト項目

リスト(1)の「軽食」「デザート」「ドリンク」のセル範囲(B2:D2)を選択して「名前ボックス」にリスト名を入力します。
名前ボックスにリスト項目の名前を入力

表から簡単に名前を定義できる

次のリスト(2)は、「メニュー」で選んだリスト項目ごとに表示させるドロップダウンリストの選択肢になります。

リスト(2)も、名前を定義しますが、これは一括で行えます。

表全体(B2:D5)を選択します。
表全体を選択
「数式」タブの「定義された名前」グループにある「選択範囲から作成」をクリック。
数式タブの「選択範囲から作成」ボタン
表示されたボックスの「上端行」にチェックを入れて「OK」します。
「選択範囲から作成」ボックスで「上端行」チェック
この時点でリスト(1)とリスト(2)の名前が全て定義されました。
「セルの名前を定義する」についての詳細

リスト(3)はそれぞれ別表を作る必要があります。

「軽食」配下のリスト項目
「軽食」に連動させるリスト項目
「デザート」配下のリスト項目
「デザート」に連動させるリスト項目
「ドリンク」配下のリスト項目
「ドリンク」に連動させるリスト項目
リスト(2)に並ぶ選択肢の名称とリスト(3)各表の「上端行」セルの名称は完全に一致させましょう。後の操作は、前章「表から簡単に名前を定義できる」と同じです。

以下の操作を3つの表で繰り返します

1.表全体を選択 ⇒ 2.「数式」タブの「選択範囲から作成」をクリック ⇒ 3.表示されたボックスの「上端行」をチェック

これで、プルダウンリスト項目用のシートでの作業は完了です。

データの入力規則でプルダウン(ドロップダウン)リストを設定

実際にデータを入力していくシートに切り替えます。
データを入力するシートに切り替え

リスト(1)をプルダウンで表示させる最初のセル(サンプルではB2)を選択し、「データ」タブの「データの入力規則」ボタンをクリックします。
セルを選択し、データの入力規則ボタンをクリック
「データの入力規則」ダイアログボックスが開いたら、「設定」⇒「リスト」で「元の値」のテキストボックスに前章でリスト(1)に付けた名前「=メニュー」を入れます。

この操作の詳細は、以下の記事を参照して下さい。

Excel(エクセル)プルダウン(ドロップダウン)リストの作成方法|徹底ガイド

データの入力規則ダイアログボックスにリスト名を入力
セルの右横に▼が現れたら、Altキー+↓キーでドロップダウンリストが表示されることを確認しておきます。
メニューのドロップダウンリスト表示確認

INDIRECT関数でプルダウン(ドロップダウン)リストを連動させる

さて、ここからがこのページの重要ポイントです。

「B2」セルで「軽食・デザート・ドリンク」の3つの選択肢から一つを選んで入力した場合、「C2」セルでは「B2」セルで選ばれた文字列に紐付くリスト(2)をプルダウンで表示させる設定をします。

「C2」セルを選択し、
「C2」セルを選択
先ほどの「B2」セルの時と同様に「データの入力規則」ダイアログボックスを開き、「設定」の「入力値の種類」を「リスト」にします。
そして「元の値」のテキストボックスに「=INDIRECT(B2)」と入力します。
データの入力規則ダイアログボックスに=INDIRECT(B2)を入力
「OK」を押すと、↓こんなエラー画面が出ますが、構わずEnter押し。
INDIRECT関数入力のエラー画面

INDIRECT関数についてのヘルプの説明は、”指定される文字列への参照を返します。セル参照はすぐに計算され、結果としてセルの内容が表示されます。”となっています。
=INDIRECT()」とは「()内に指定されたセル(ここではB2)の内容(ここでは設定した入力規則)を参照して、現在選択されているC2セルに反映させますよ」ということですね。

試しに、B2セルのリストで「軽食」を選び、C2セルのドロップダウンリストに「パスタ・サンドイッチ・グラタン」が表示されるか確認しておきましょう。
「軽食」のドロップダウンリスト表示確認

次は「D2」セルを選択し、
「D2」セルを選択
上記と同様に「データの入力規則」ダイアログボックスの「元の値」に今度は「=INDIRECT(C2)」と入力します。
データの入力規則ダイアログボックスに=INDIRECT(C2)を入力
これも「C2セルの内容を参照してD2セルに反映させる」ということです。
B2セルのリストで「軽食」を、C2セルのリストで「サンドイッチ」を選んで、D2セルに「玉子・ツナ・ハム」が表示されるか確認しておきます。

「サンドイッチ」のドロップダウンリスト表示確認

プルダウン(ドロップダウン)リストの設定をオートフィルでコピー

3つのセルに連動したドロップダウンリストがちゃんと表示されることを確認したら、入力した文字列は一旦削除しておきます。

B2:D2のセル範囲を選択し、フィルハンドル(アクティブになったセルの右下角の突起)を下へドラッグして、同列のセル全てに入力規則をコピーします。これはオートフィルという連続コピー技です。
プルダウン(ドロップダウン)リストをオートフィルでコピー
これで3行目以降の全てのセルにドロップダウンリストが表示されるようになります。
ドロップダウンリストの表示確認

Excelデータの入力規則

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