【Excel】2段階ドロップダウンリストの設定

2段階のドロップダウンリストの設定方法について説明します。様々なやり方があると思いますが、個人的には今回紹介する方法が一番スッキリしました。

(1) やりたいこと

下図に記載の通り、ドロップダウンリスト用のリストを作成し、一つ目のドロップダウンリストから選択したものに対応して、二つ目のドロップダウンリストの選択項目が変わるようにします。

(2) 方法

まず、適当なリストをセルに入力します。

 

作成したリストをテーブルにします。

テーブル名はデフォルトで「テーブル1」とつきますが、今回は「リスト」という名称に変更しました。

入力用のセルに「データの入力規則」でドロップダウンリストを設定していきます。

通常は先に作成したリストと入力用はシートを分けますが、今回は説明しやすいよう同じシートにしています。

まず、種別の項目から設定します。データの入力規則の設定タブに次の通り選択・入力します。

 

入力値の種類 : リスト

元の値 : =INDIRECT("リスト[#見出し]")

 

設定した種別のセルでリストの見出しに設定された項目が選択できるようになりました。

次に、品名のドロップダウンリストを設定します。

入力値の種類 : リスト

元の値 : =INDIRECT("リスト["&B15&"]")

 

すると、ドロップダウンリストは設定できましたが、テーブルの空白行までドロップダウンリストに表示されてしまいました。これでも使うことはできますが、空白行が増えると使いにくくなりますので、先ほど入力規則の元の値に入力した数式を見直します。

元の値を次の通り、修正します。

元の値: 

=OFFSET(INDIRECT("リスト["&B15&"]"),0,0,COUNTA(INDIRECT("リスト["&B15&"]")))

 

つまり、OFFSET関数で各項目のデータ数分だけに絞込んであげます。

今度は空白行を除いた品名だけを選択できるようになりました。

以上で完成です。

 

(3) 補足:一つ目の項目が増えた場合

一つ目の項目が後から増えた場合も、下図の通りリストに追加で入力するとテーブルが拡張され、ドロップダウンリストの選択項目にも反映されます。