
Excelの小技!プルダウンメニューを別の列の値によって変化させる方法について
アイシーティーリンク株式会社の三好です
今回は、エクセルの小技シリーズPart3!!(^^)v
前回のエクセル小技シリーズでは、「可変・連動のプルダウンメニュー」というのをご紹介させていただき、大変たくさんのビューとイイネ!をいただいております。ドモドモ\(^_^ ) ( ^_^)/ドモドモ
そんな意外な反響に驚きつつ、まだまだエクセルの使用頻度も高いんだなぁと再認識したところで、今回も調子に乗って「エクセル小技シリーズ」でいっちゃいます。( ̄▽ ̄)V ブイ
今回のネタは前回の「可変・連動のプルダウンメニュー」の応用編です。
そもそも「可変・連動のプルダウンメニュー」ってなんだっけ(‐.‐")??
って方のために簡単に説明します。
プルダウンメニューに表示させたい値を別シートの列で管理し、その列の値を増やしたり減らしたりするだけで、プルダウンメニューの内容も同時に変化するというものです。

この列に加筆修正するだけでプルダウンメニューに反映します

※詳しくは「Excelの小技!可変・連動のプルダウン(データの入力規則)について」をご参照ください。
やりたいこと
今回は表示させるプルダウンメニューを2種類用意し、別列の値によってどちらかのプルダウンメニューを表示させるという小技です。
以下のサンプル表を元に解説していきます。


◆Sheet1
C列(分類)> プルダウンメニューで選択
D列(品名)> C列(分類)の値によってプルダウンメニューが変化
◆Sheet2
B列 > "分類"用のプルダウンメニュー
D列 > "分類"で"果物"が選択された場合の果物メニュー
F列 > "分類"で"魚介類"が選択された場合の魚介類メニュー
Sheet1のC列で選択した値によって、D列で選択可能なプルダウンメニューが変わります。例えば、C3セルで「果物」を選択した場合、D3セルで表示されるプルダウンメニューはSheet2のD列(fruit)の値が表示され、「魚介類」を選択した場合はSheet2のF列(seafood)の値が表示されるというものです
それでは実際にやっていきましょう(/・ω・)/
プルダウンメニューを可変連動型で作成
※可変連動にしなくてもできますが、名前の定義をしておいた方が判りやすくなります。
Sheet2の3つのプルダウンメニューをそれぞれ可変連動の計算式で名前の定義します。定義する名前は任意ですが、今回はそれぞれ1行目の値(category, fruet, seafood)で定義していきます。
名前の定義(category, fruit, seafood)

※詳しくは「Excelの小技!可変・連動のプルダウン(データの入力規則)について」をご参照ください。
category
=OFFSET(Sheet2!$B$2,0,0,COUNTA(Sheet2!$B:$B)-1,1)
=OFFSET(Sheet2!$B$2,0,0,COUNTA(Sheet2!$B:$B)-1,1)
fruit
=OFFSET(Sheet2!$D$2,0,0,COUNTA(Sheet2!$D:$D)-1,1)
=OFFSET(Sheet2!$D$2,0,0,COUNTA(Sheet2!$D:$D)-1,1)
seafood
=OFFSET(Sheet2!$F$2,0,0,COUNTA(Sheet2!$F:$F)-1,1)
=OFFSET(Sheet2!$F$2,0,0,COUNTA(Sheet2!$F:$F)-1,1)
数式タブ > 「名前の管理」で正しくできているか確認してください。

表にプルダウンメニューを設定
「分類」(C列)
Sheet1C列のプルダウン設定したセルをまとめて選択しアクティブにします
今回の表であれば"C3"~"C7"セルを選択し
「データ」タブ > データツール内の「データの入力規則」

データの入力規則
「設定」タブ > 入力値の種類で「リスト」を選択
「元の値」で定義した名前(=category)を入力
※必ず半角英数でイコールを付けて"定義した名前"を入力すること!


「品名」(D列)
同じようにD3~D7セルを選択し
「データ」タブ > データツール内の「データの入力規則」を開きます
「データの入力規則」>「元の値」の計算式
こちらはC列の値によって変化させるためIF文を使って計算させます。
「設定」タブ > 入力値の種類で「リスト」を選択
「元の値」に(=if($C3="果物",fruit,seafood))を入力
=if($C3="果物",fruit,seafood)
これで完成です(^^)/
IF文を見ていただければわかりますが、C3セルが「果物」だった場合のみ"fruit"がプルダウンされますので、空白だったり、「果物」以外の値が入った場合はすべて"seafood"がプルダウンされます。
IF文を入れ子にすればさらに複数のプルダウンを選択させることも可能ですので是非活用してみてください!!
※IF文の詳細説明はこのブログでは省きますが、検索すればたくさん出てきますので調べてみてください。
実際にC列の値を変えて試してみましょう


今回は以上となります!無事に、成功しましたでしょうか。
まだまだエクセルが活躍するシーンがあると思いますので、今後もネタに困ったら小技シリーズを出していきますので楽しみにしていてください。
それではまたお会いしましょう(^^)/