• 締切済み

【エクセル】商品番号に合わせたカラーリストのプルダウン表示は出来ますか?

商品番号を入力して、その商品番号に合わせたカラーがプルダウン表示するようにしたいのですが。。。 商品番号をプルダウンから選び、そこからINDIRECTを使ってというやり方はよく目にしますが 私は商品番号はプルダウンで選ぶのでなく、自分で入力したいんです。 その入力した商品番号に連動したカラーリストをプルダウンで表示できるのかどうか。 教えてください。よろしくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

質問であいまいな点を補足してください。 ・商品番号とカラーの対応表は既にある。これから作る。どちら。 今既にあればどこに(例エクセル)にどんなカタチになってますか。 ・カラーは文字ですか(例赤)、色見本ですか。 ただし色見本の場合、エクセルだと56色制限、(2007だと1600万色だが、)なので対応できている? ーー どうも関数では難しそうです。 VBAnなりそう。リストボックスなどで、ある列にカラーを表示するのは既成のコントロールではできるのかな。 エクセルではアクセスのようなSQLが使えないので、商品を入力したとき、色見本を検索してくるのは、相当技量が上の人で無いと難しそう。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

よく分かりませんが、こう言う事でしょうか。 A1セルに商品番号を入れて B1セルでA1セルに対応するリストを表示させ選択したい であれば、 ■回答1 同様にINDIRECT関数を使用します。 ただし、リストに対してあらかじめ範囲名を付けてください。 範囲名に商品番号を設定すると分かり易いです。 入力規則でリストを選択して、そこにINDIRECT関数で範囲名を指定します。 例: ・リストに表示させるデータの一覧を入力する(E1~G3などの範囲) ・リストに表示させたい範囲を選択(E1~G1など)して、左上の「名前ボックス」に名称に商品番号を入力して範囲名とする ・リストに表示させたい範囲にすべて同様に範囲名を設定する ・B1セルを選択して、データ → 入力規則 → 入力値の種類を「リスト」にする → 元の値に次の式を入力する  =INDIRECT(A1) ・A1セルに範囲名(商品番号)を入力する ・B1セルを選択しプルダウンリストから値を選択する 範囲名を設定する手間は掛かりますが、希望する動作をするはずです。 範囲名や範囲を間違えてしまった場合は、挿入→名前→定義、で修正が可能です。 ■回答2 範囲名の設定が面倒であれば、表示させたいリストの一覧から VLOOKUP関数やHLOOKUP関数、LOOKUP関数などで 入力規則で設定した範囲に対応する値が表示されるようにしましょう。 例: ・ E1:VLOOKUP(A1,D:G,2) ・ F1:VLOOKUP(A1,D:G,3) ・ G1:VLOOKUP(A1,D:G,4) ・ 各2行目以降 ・ D列:商品番号、E列:値1、F列:値2、G列:値3 ・ B1セル:入力規則の「元の範囲」に「=E1:G1」 ・A1セルに商品番号を入力してB1セルのプルダウンリストから値を選択 値を修正することが多い場合はこちら方が分かり易いかもです。 カラーリストと言うことですが、色を選択して表示させることは関数や入力規則では不可能です。 マクロを使用する必要があります。