エクセルで1つ目のプルダウンを選択すると2つ目のプルダウンが絞り込まれる、2段階のプルダウンを作成する方法をご紹介します。1つ目のプルダウンを選択すると、隣のセルが自動入力されるようにする方法も解説しているので、ぜひ参考にしてみてください。
連動プルダウンの作り方
まずシートの空いている部分に、プルダウンのリストを作成します。
1列目のアイテムの下に、連動して呼び出す2列目のアイテムを並べてください。例のように縦方向に作成しておくと、列を非表示にして隠すのに便利です。
リストを隠す場合、列記号を選択して右クリックメニューから[非表示]を選択します。
次にリストの2列目のアイテム範囲に、1列目のアイテムの名前をつけます。
数式タブの[選択範囲から作成]を開き、[上端行]にチェックを入れて[OK]を押してください。
例えば[キャベツ、タマネギ、ジャガイモ、トマト]の範囲には、「野菜」の名前がつきます。
リストを横方向に作成した場合は、[左端列]にチェックを入れます。
1列目のプルダウンを挿入する範囲を選択し、データタブから[データの入力規則]を開きます。
入力値の種類から[リスト]を選び、元の値に1列目のアイテムの範囲を指定してください。
1列目の範囲がプルダウンで、「野菜」または「果物」を選択できるようになります。
2列目のプルダウンを挿入する範囲を選択し、データタブから[データの入力規則]を開きます。
入力値の種類から[リスト]を選び、元の値には[=INDIRECT(A2)]を入力してください。セル参照(A2)の部分は、1列目のプルダウン範囲の先頭のセルを指定します。
INDIRECT関数は1列目の文字列を受け取り、同じ名前の範囲を呼び出します。
INDIRECT関数の構成要素:(参照文字列, [参照形式])
[元の値 はエラーと判断されます。]が表示されるので、[はい]を選択します。
これは1列目が未選択の時点で、INDIRECT関数の引数が空欄になるためです。
1列目のプルダウンを選択すると、2列目には1列目で選択したアイテムと同じ名前の範囲が呼び出され、リストとして表示されます。
プルダウンに連動して自動入力する方法
1列目のプルダウンを選択すると、隣のセルに自動で値が入るようにします。基本的にVLOOKUP関数を使う方法がお勧めですが、選択肢が少ない場合はIF関数を使う方法もあります。
VLOOKUP関数で自動入力する方法
まずシートの空いている部分に、抽出する値のリストを作成しておきます。
リストから値を抽出する数式は、VLOOKUP(A2,$D$2:$E$5,2,FALSE) です。 VLOOKUP関数は範囲の1列目を検索し、検索値と一致する行を指定した列から返します。
このときプルダウンが未選択だと、検索値が存在しないためエラーになります。
VLOOKUP関数の構成要素:(検索値, 範囲, 列番号, [検索方法])
エラーを非表示にするには、VLOOKUP関数の返り値をIFERROR関数の値に指定します。
これを数式にすると IFERROR( VLOOKUP(A2,$D$2:$E$5,2,FALSE),””) です。VLOOKUP関数は検索値が空白のときエラーを返すので、プルダウンが未選択のとき空白を返します。
IFERROR関数の構成要素:(値, エラーの場合の値)
IF関数で自動入力する方法
IF関数に複数の条件を指定するには、偽の場合の値にIF関数を入れ子します。
例えば選択肢が2つなら、IF(A2=”もも”,300,IF(A2=”ばなな”,100,””)) です。未選択の場合は2つ目のIF関数の偽の場合の値に当てはまるので、空白を返します。
Microsoft 365 またはExcel 2019 以降のバージョンの場合、IFS関数が使えます。
IF関数の構成要素:(論理式, 真の場合の値, 偽の場合の値)