• ベストアンサー

EXCELで注文書を作成したいのですが…

EXCELで注文書を作成したいと思い立ちました。 そこで、オートフィルターみたいな感じに商品名を選択すると単価が出るようにしたいのですが方法がわかりません… 誰かおしえてください!!

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

特定の品名をドロップダウンリストから選択し、その横のセルに単価を表示したいなら、入力規則とVLOOKUP関数を使います。 バージョンが記載されていませんので、エクセル2003以前のバージョンで説明すると、A列に品名B列に単価のリストを作成しておき、データ」「入力規則」で「リスト」を選択し、参照範囲に商品名の範囲を選択します。 その横の単価を表示するセルに以下の式を入力します。 =IF(商品名のセル="","",VLOOKUP(商品名のセル,A:B,2,0))

Anchangoo
質問者

お礼

早い回答ありがとうございます。

その他の回答 (2)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.3

他にも色々な方法がありますよね keithinさん表をお借りします =choose(sumproduct(({"あれ","これ","それ","どれ"}=商品名のセル)*{1,2,3,4}),10,20,30,40) =lookup(商品名のセル,{"あれ","これ","それ","どれ"},{10,20,30,40}) =hlookup(商品名のセル,{"あれ";"これ";"それ";"どれ",10;20;30;40},2,0) =vlookup(商品名のセル,{"あれ";10,"これ";20,"それ";30,"どれ";40},2,0) =offset($A$1,match(商品名のセル,{"あれ","これ","それ","どれ"},0),0,1,1) 他にも沢山使える関数があります 遊び気分で暇つぶしに関数のヘルプを眺めてみると 色々な発見が出来て楽しいかも知れませんよ ところで蛇足ですが vlookupを使う際 「セル上に一覧が別表で必要!!」というのが常識化しているように見受けられますが これは真っ赤な嘘です、誤りです。 この一覧表データは上記で私が示したように 式中にデータとして記載することが可能で Excel自身、式を実行する際には セル参照後、実際に上記の式中のように 参照値を定数データに変換してから取り扱っています これは式をトレースすれば一目瞭然です。 あとこの形式は データの入ったセル参照 例えば=IF(A2="","",VLOOKUP(A2,一覧,2,FALSE)) と言う式があるとして 数式バー内でマウスカーソルでこの式の内の「一覧」という部分を 選択して反転表示させておいてPF9を押せば {"あれ";10,"これ";20,"それ";30,"どれ";40} と言ったような正しいデータが実際に変換されて出てきます 正式には配列定数というのかな? データベース関数以外では 固定値ならばセル参照は全てこの形式で代用可能です 知っていると少しだけ鼻が高いかも?

Anchangoo
質問者

お礼

詳しくありがとうございます

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

シート2に一覧を作成する A列 B列 品目 単価 あれ  10 これ  20  それ  30 どれ  40 A2:B5を選択して,名前ボックス(数式バーの左端の通常A1など表示が出ている箱)の中に 一覧 と記入する #若しくは名前の定義で「一覧」と名前を定義する #品目の追加など,一覧データを更新したときは名前の定義で修正する #より高度な使い方として一覧のセル範囲の自動収拾も出来ますが,それは後日の課題に シート1に戻り,品目のセル範囲(たとえばA列)で「データの入力規則」を開始する 種類をリストに変えて,下の空欄に  =INDEX(一覧,0,1) と設定する となりの例えばB列に =IF(A2="","",VLOOKUP(A2,一覧,2,FALSE)) のような数式を入れる。

Anchangoo
質問者

お礼

参考にしたいと思います。 ありがとうございます。

関連するQ&A