• ベストアンサー

エクセル関数でA列(品名)D列(金額)・・品名ごとに合計

A列に品名があり、D列に金額があります。   A   B   C   D 1 商品1        ¥100      2 商品2        ¥150 3 商品1        ¥100 4 商品3        ¥200 5 商品2        ¥100 求めたい答えは各商品ごとの合計金額なのですが、関数で可能ですか?(VBAになりますか?)  商品1  ¥200  商品2  ¥250  商品3  ¥200 宜しくお願いします。(アクセスでやれと言われそうですが・・)

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

  • ベストアンサー
回答No.3

こんにちは。 ■作業列を使う方法です。 Sheet1 の F列を作業列にします。(作業列はどの列でもかまいません) Sheet1 の F1に↓ ----------------------------------- =IF(COUNTIF($A$1:A1,A1)=1,ROW(),"") ----------------------------------- この数式を予測されるA列の最大行までコピーしてください。 A500 までデータが入るだろうと思えば、F500までコピー。 Sheet2 の A1に↓ ----------------------------------------------- =IF(COUNT(Sheet1!F:F)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!F:F,ROW(A1)))) ----------------------------------------------- Sheet2 の B1に↓ ----------------------------------------------- =IF(A1="","",SUMIF(Sheet1!A:A,A1,Sheet1!D:D)) ----------------------------------------------- 上の2つの数式を、商品の種類の数+アルファ、コピーしてください。 商品の種類が最大50種類ぐらいだと思えば、50行+アルファ 作業列が目障りなら非表示にしてください。

LINERS
質問者

お礼

出来ました!! 感謝です。有難うございました。

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

No.1です。 列指定を間違えました。 ×=SUMIF(A:A,F1,B:B) ↓ ○=SUMIF(A:A,F1,D:D) です。

LINERS
質問者

お礼

ご解答感謝します。

LINERS
質問者

補足

少し質問を訂正させて下さい。 A列の品名はランダムに入力されるので、特定のセルに商品名がリストのように並んでいるわけではありません。次のシートのA列に重複しないように拾い上げるにはどうすれば良いですか?その上で先ほどの内容です。(支離滅裂な文章ですみません。) sheet1   A   B   C   D        1 商品1        ¥100      2 商品2        ¥150 3 商品1        ¥100 4 商品3        ¥200 5 商品2        ¥100 sheet2   A   B 1 商品1 ¥200 2 商品2 ¥250 3 商品3 ¥200  ↑  商品名もA列から重複させないように拾い上げたいのです。そしてその隣の列へその合計を・・ 宜しくお願いします。  

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 とりあえず、数式での方法です。 仮にF1に「商品1」とある場合は、 =SUMIF(A:A,F1,B:B) という感じになります。 データの変更がないなら、ピボットでやってもいいでしょう。

関連するQ&A