Excel(エクセル)で複数のプルダウン(ドロップダウン)リストを連動させる
使用関数:INDIRECT
データの入力規則「リスト」設定を応用して、3階層のプルダウン(ドロップダウン)リストを連動させる方法です。
上図のように、B列セルで選んだ値に従ってC列セルのリストを表示させ、そこで選んだ値から更にD列セルのリストを表示させるという連動型複数段階式の設定方法を図解していきます。セル内容を参照するINDIRECT関数を使いますが、操作は簡単です。
プルダウン(ドロップダウン)リストの選択項目を作り、名前を定義する
プルダウンリストの選択項目用の表は別シートに置きます。シートを追加し、リスト(1)とリスト(2)に表示させる選択肢を下図のような表にまとめて作成しました。
リスト(1)はドロップダウンリストで最初に選択する「メニュー」のリスト項目になります。
リスト(1)の「軽食」「デザート」「ドリンク」のセル範囲(B2:D2)を選択して「名前ボックス」にリスト名を入力します。
表から簡単に名前を定義できる
次のリスト(2)は、「メニュー」で選んだリスト項目ごとに表示させるドロップダウンリストの選択肢になります。
リスト(2)も、名前を定義しますが、これは一括で行えます。
表全体(B2:D5)を選択します。
「数式」タブの「定義された名前」グループにある「選択範囲から作成」をクリック。
表示されたボックスの「上端行」にチェックを入れて「OK」します。
この時点でリスト(1)とリスト(2)の名前が全て定義されました。
「セルの名前を定義する」についての詳細
リスト(3)はそれぞれ別表を作る必要があります。
「軽食」配下のリスト項目
「デザート」配下のリスト項目
「ドリンク」配下のリスト項目
リスト(2)に並ぶ選択肢の名称とリスト(3)各表の「上端行」セルの名称は完全に一致させましょう。後の操作は、前章「表から簡単に名前を定義できる」と同じです。
1.表全体を選択 ⇒ 2.「数式」タブの「選択範囲から作成」をクリック ⇒ 3.表示されたボックスの「上端行」をチェック
これで、プルダウンリスト項目用のシートでの作業は完了です。
データの入力規則でプルダウン(ドロップダウン)リストを設定
実際にデータを入力していくシートに切り替えます。
リスト(1)をプルダウンで表示させる最初のセル(サンプルではB2)を選択し、「データ」タブの「データの入力規則」ボタンをクリックします。
「データの入力規則」ダイアログボックスが開いたら、「設定」⇒「リスト」で「元の値」のテキストボックスに前章でリスト(1)に付けた名前「=メニュー」を入れます。
この操作の詳細は、以下の記事を参照して下さい。
セルの右横に▼が現れたら、Altキー+↓キーでドロップダウンリストが表示されることを確認しておきます。
INDIRECT関数でプルダウン(ドロップダウン)リストを連動させる
さて、ここからがこのページの重要ポイントです。
「B2」セルで「軽食・デザート・ドリンク」の3つの選択肢から一つを選んで入力した場合、「C2」セルでは「B2」セルで選ばれた文字列に紐付くリスト(2)をプルダウンで表示させる設定をします。
「C2」セルを選択し、
先ほどの「B2」セルの時と同様に「データの入力規則」ダイアログボックスを開き、「設定」の「入力値の種類」を「リスト」にします。
そして「元の値」のテキストボックスに「=INDIRECT(B2)」と入力します。
「OK」を押すと、↓こんなエラー画面が出ますが、構わずEnter押し。
INDIRECT関数についてのヘルプの説明は、”指定される文字列への参照を返します。セル参照はすぐに計算され、結果としてセルの内容が表示されます。”となっています。
「=INDIRECT()」とは「()内に指定されたセル(ここではB2)の内容(ここでは設定した入力規則)を参照して、現在選択されているC2セルに反映させますよ」ということですね。
試しに、B2セルのリストで「軽食」を選び、C2セルのドロップダウンリストに「パスタ・サンドイッチ・グラタン」が表示されるか確認しておきましょう。
次は「D2」セルを選択し、
上記と同様に「データの入力規則」ダイアログボックスの「元の値」に今度は「=INDIRECT(C2)」と入力します。
これも「C2セルの内容を参照してD2セルに反映させる」ということです。
B2セルのリストで「軽食」を、C2セルのリストで「サンドイッチ」を選んで、D2セルに「玉子・ツナ・ハム」が表示されるか確認しておきます。
プルダウン(ドロップダウン)リストの設定をオートフィルでコピー
3つのセルに連動したドロップダウンリストがちゃんと表示されることを確認したら、入力した文字列は一旦削除しておきます。
B2:D2のセル範囲を選択し、フィルハンドル(アクティブになったセルの右下角の突起)を下へドラッグして、同列のセル全てに入力規則をコピーします。これはオートフィルという連続コピー技です。
これで3行目以降の全てのセルにドロップダウンリストが表示されるようになります。