肝は、"INDIRECT関数"を使用することです。
まず、商品名と区分のテーブル(一覧表)があります。
1つ目のドロップダウンリストで区分を選択した時に、2つ目のドロップダウンリストにその区分に該当する商品名だけが表示されるようにしてみます。
必要なデータの準備
"区分"毎にアイテムの一覧表をつくるのですが、元のテーブルのデータが更新されることを考えて、ピボットテーブルを使ってレポートフィルタに"区分"を設定したピボットテーブルを1つのシートに区分の数だけコピーして全ての区分とそのアイテムの複数の表をつくります。
ピボットテーブルを使わなくても、とにかく区分毎の商品名の一覧表ができればOKです。
つなみに、ピボットテーブルのフィールドリストはこうなります。
ドロップダウンリスト作成の準備(範囲名の設定)
で次は、区分毎に集計されたアイテムの範囲に名前(区分名)をつけていきます。
"アルコール"のアイテムの範囲を選択して"名前ボックス"に"アルコール"と入力し「Enter」キーで確定します。
ドロップダウンリストの作り方はコチラに詳しく説明してあります。。
同様に"パン"も、、
んで、全ての区分毎のアイテムの範囲に区分名をつけていきます。
次は、区分を抽出したテーブルで区分のアイテムを選択して"区分"と名前をつけます。
区分の重複しないアイテムの抽出のやり方はこちらをご覧ください。
これで、準備完了です!
いよいよドロップダウンリストの作成です!
では、新しいシートで、セル"B4"にカーソルを置いて、「データ」、「データツール」、「データの入力規制」を選択します。
「データの入力規制」の画面が開きます。
入力値の種類:"リスト"を選択します。
元の値:"=区分"と入力します。
すると、区分のドロップダウンリストができました。
次は、いよいよこの区分と連動してアイテムを抽出する商品名のドロップダウンリストを作ります。
セル"C4"にカーソルを置いて同じように「データの入力規制」の画面を開きます。
入力値の種類:"リスト"を選択します。
元の値:"=INDIRECT(B4)"と入力します。
"INDIRECT関数"を使うことで、区分に表示されたアイテム(セルB4)がリスト名として元の値に引用することができます。
「OK」するとこんなメッセージが表示されますが「はい」で続行します。
で、この入力規制を設定したセルB4とC4を必要な範囲までコピーします。
区分にドロップダウンリストから"パン"を選択すると商品名のセルのドロップダウンリストには"パン"の商品名だけが表示されました。
"飲料"を選択すると飲料の商品名だけが表示されます。
と、このように区分と連動し絞り込まれた商品名のドロップダウンリストが完成しました!
データソース(元データ)の入力に応用して、間違いのないデータ入力に活用できますね。
関連ページ
ピボットテーブルを作ってみた(更新や、用語の説目も)
レポートフィルタで特定のアイテムのデータを抽出してみた
重複の無いデータを抽出する
ドロップダウンリスト(コンボボックス/選択ボックス)を作ってみた
INDIRECT関数でセルの位置や範囲をテキストで参照させてみた
ラベル:ドロップダウンリスト データの入力規制