• 締切済み

excel 商品リストにて 商品名を入力→単価自動的に表示

商品リストを作成してます シート1に商品リスト、シート2に単価表を作成してます 商品リストAセルに日付、Bセルに商品名、Cセルに数量、Dセルに単価、Eセルに小計、Fセルに仕入先とします。 各商品にコードを指定するのではなく ダイレクトに、商品名で反映?です 商品名と数量を入力すると、単価→小計が出せる数式にしたいのですが 力不足のためご質問させていただきます VLOOKUPを使用してかな?と試みてはみました・・・・・・ 最終的には、商品ごとに1カ月の合計を出したいのですが どなたかお解りの方がいらっしゃいましたらお教えくださいますよう お願いいたします 質問の内容やわかりにくいところがありましたら 申し訳ありません どうぞよろしくお願いいたします

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

Sheet1ではA1セルに日付、B1セルに商品名、C1セルに数量、D1セルに単価、E1セルに小計、F1セルに仕入先の項目名があり、データは2行目からあるとします。 日付は2009/7/15などと入力し7月15日などと表示されているとします。今年でしたら7/15と入力しても自動的に2009/7/15になって入力されています。 Sheet2ではA1セルに商品名、B1セルに単価の項目名があり、2行目からデータがあるとします。 そこでSheet1でのD列に単価を表示させるために、D2セルには次の式を入力し下方にオートフィルドラッグしまう。 =IF(OR(B2="",COUNTIF(Sheet2!A:A,B2)=0),"",VLOOKUP(B2,Sheet2!A:B,2,FALSE)) 小計はE2セルに次の式を入力し下方にオートフィルドラッグします。 =IF(COUNT(C2:D2)<>2,"",C2*D2) これで小計は出るのですが次に商品ごとで月ごとに集計ですがそのためには作業列としてG2セルに次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",B2&YEAR(A2)&MONTH(A2)) この作業列を利用して商品ごとで月ごとの集計を求めることにします。 例えばI2セルにはSheet2での商品名をコピーして貼り付けます。 下方に商品名が並びます。 J1セルから右横方向に月を表示させるのですが、月だけでは年が変わると正しく計算されないので、例えばJ1セルには2009/1/1、K1セルには2009/2/1と入力しJ1セルとK1セルを選択し右方向にドラッグします。L1セルでは2009/3/1というように入力されるでしょう。 そこでJ1セルから横方向のセルを選択し、「書式」から「セルの表示形式」で「日付」の中から2001年3月を選択して、J1セルでは2009年1月のように表示されるようにします。 次にJ2セルには次の式を入力し右方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(J$1="",$I2=""),"",SUMIF($G:$G,$I2&YEAR(J$1)&MONTH(J$1),$E:$E)) これで商品ごとで月ごとの集計が表示されます。

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

>VLOOKUPを使用してかな?と試みてはみました・ VLOOKUP関数の利用で良いと思います。やってみてどうだったのか。その点を書いて、是正方を教えてもらうほうが勉強には良いと思う。 >どなたかお解りの方がいらっしゃいましたら・・なんて問題じゃない。この質問は毎日出てきています。 Googleででも「エクセル VLOOKUP関数」で照会すれば、何十万と記事が有る。 ーー >商品ごとに1カ月の合計を出したいのですが これもありふれた質問です。 商品名を該当条件と相手考え (1)SUMIF関数 (2)SUMPRODUCT関数などで出来ます。 ほかにピボットテーブルと言うのでも出来ます。 集計と言うのも在ります。 単品指定の合計ならDSUM関数もあります。 全てGoogleでエクセルをつけて照会すれば、沢山解説が出ます。

  • sky-plane
  • ベストアンサー率37% (33/88)
回答No.2

商品名と単価について入力した表を別シートでもいいので作成してください。たとえば   A列     B列 1 商品名   単価 2 パソコン  100000 3 HDD    50000 つぎに、単価を表示したいセルにVLOOKUP関数を使います。 VLOOKUP関数について説明します。 VLOOKUP関数は VLOOKUP(検索値,範囲,列番号,[検索方法]) という書式で入力します。ここで、検索値は検索する文字列(つまり商品名)なので、検索したい商品名の入力されているセルを選択してください。 次に範囲に商品名と単価の入力された表を選択してください。ここで、表見出しは含んでも含まなくても良いです。選択したら F4キーを押してください。すると$マークのついたセル番地の表示になります。これは絶対参照というもので説明は長くなるので省きます。 次に列番号ですが、ここでは2にしてください。これは表示する文字列の入力された列が、表の左端から何列目にあるかを指定するもので、ここで表示したい単価は左端から2列目にあるので2と入力します。 検索方法は『FALSE』と入力してください。(『』は含まない)これの意味は説明すると長いのでそのまま『FALSE』と入力してください。 そうすれば商品名を入力したときに単価が自動で表示されるようになります。 補足1:商品名に何も入力されいないとき おそらく商品名に何も入力していないときは単価のところに『#N/A』というエラー表示がされると思います。これは検索値に何も入力されていないぞというエラーです。なので、これは放っておいて商品名を入力したときに勝手に消えるので問題ないですが、どうも見栄えが悪い。というときは次のように入力してください。 =IF(商品名のセル番地="","",VLOOKUP(****)) ****のところは先ほど作ったVLOOKUP関数をそのまま入力すれば良いです。 そうすれば商品名が空白のときは単価のところが空白になります。これは、商品名が空白ならば単価も空白にするという関数の使い方です。 補足2:小計の出し方 これはVLOOKUP関数が理解できれば問題ないと思います。 小計の表示されたところ*数量 とすればいいです。しかし、ここでもまた商品名が空白のときは『#VALUE!』というエラーが表示されると思います。これは補足1と同じようにVLOOKUP関数のところにこの数式を入れればいいのです。 かなり長文になりましたが、分からないところがありましたらご報告お願いします。

noname#99913
noname#99913
回答No.1

Sheet2のA列に商品名、B列に単価があるとします。 以下、Sheet1に対する入力です。1行目には項目名があり、データは2行目からと仮定して、 (1)D2に「=VLOOKUP(B2,Sheet2!$A:$B,2,FALSE)」と入力 (2)E2に「=C2*D2」と入力 (3)D2:E2を、下へ必要なだけコピー 商品別の合計は、 (1)たとえばG2から下へ商品名を入力 (2)H2に「=SUMIF(B:B,G2,E:E)」と入力 (3)H2を、下へ必要なだけコピー

yummying
質問者

お礼

お礼が大変遅くなり申し訳ございませんでした。大変ありがとうございました

関連するQ&A