エクセルで分類と品名を名前定義を利用し連動させてドロップダウン表示させる

エクセルで分類欄と品名欄、それぞれの品に多くの特別のデータがあり、それを操作するシートに検索して表示させたいことが生じた。そこでここでは簡単な例をつくり覚えのために記録する。

名前の定義a

 

このような分類と品名、それぞれのデータのシートがある。枠で囲ったa~dの範囲をそれぞれ選択しメニューから(あるいは右クリックで)「範囲に名前をつける」をクリックし、a:「分類」、b:「くだもの」、c:「野菜」、d:「魚」と定義する。

検索シートの分類の表示欄に

分類入力規則

 

と名前を定義した「分類」を元の値の欄に記入し入力規則を設定する。続いて品名入力規則を

品名の入力規則

として元の値の欄に「=INDIRECT($A$2)」と入力し、A2の欄の分類名に応じて品名が表示できるようにする。こうすることによって

品名検索

 

上のように分類に応じた品名だけが表示できる。

続いて価格や在庫の様子について表示するために、商品シートに作業欄を設ける。

作業欄の設定

 

色で表示している部分が作業欄である。分類や品名は、検索シートのデータを参照する。そして価格や在庫の欄は上の俵の中からVLOOKUP関数を用いて検索し値を表示させている。列の表示は2とか3とかと入力してもよいのだが、たくさんのデータがあることを想定して

=VLOOKUP($B18,$B$6:$D$14,COLUMN()-COLUMN($B18)+1,FALSE)

として、COLUMN()-COLUMN($B18)+1 で基準列からの列番号を取得する。これによって右にデータを「コピー」>「数式の貼り付け」によって簡単に同様の作業をできるようにする。

この作業欄をつくることによって、検索シートの品名を選択したらこれらのデータ表示が楽になる。

品名検索

検索シートの価格、在庫などの欄は、商品シートの価格、在庫欄のデータを表示するように「=商品!C18」などと入力するだけで終わる。横にどれだけの欄があっても楽である。

今回は、非常に単純な商品シートを使い、分類や品名の名前定義が簡単にできた。分類が入り組み品が次々に増えていく場合には、分類名だけを集約する欄、それに応じる品名を集約する欄を作成しておく必要がある。