アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのマクロで下記のような事をしたいのですが、どなたか教えて下さい。

セルA2~A100に数種類の商品が商品ごとに入力  されているとします。
1個しかないものもあれば10個入力されているものも あります。
セルB2~B100にはA列の商品の売上金額が入力さ れています。
そこでセルC列に商品ごとの合計売上金額を計算する事 はできませんか?
1個しかない商品はその横のC列のセルに、数個あるも のはその一番下の商品の横のC列のセルに数個の合計  を、という具合に。

よろしくお願い致します。

A 回答 (3件)

#2>自分より後のセルに同じ商品がないなら


自分より後のセルに同じ商品があるなら
の間違いですねorz
    • good
    • 0
この回答へのお礼

あわてて書いたから文章が少し変でしたね。
おっしゃる通りです。

お礼日時:2006/07/13 13:29

マクロでなくても、次のような感じでもいいかも・


C2
=IF(COUNTIF(A3:$A$100,A2),"",SUMIF($A$2:$A$100,A2,$B$2:$B$100))
自分より後のセルに同じ商品がないなら,"",そうでないなら同じ商品の売上合計を求める
    • good
    • 0
この回答へのお礼

早速のご回答有難うございました。
マクロ使わなくてもちゃんと動きます。
ほんと助かりました。
有難うございます。

お礼日時:2006/07/11 16:09

文章をそのままプログラムしました。


金額のニューメリックチェック等はありません。
C列の関係ないところに0が入ります。
----
Sub mSum()
Dim i As Long
Dim j As Long
Dim lngS As Long
Dim strV As String
'A100~A3まで処理
'内側のループがi+1から開始するため
'終了条件は3となる
For i = 100 To 3 Step -1
'もしCになにも入力されてなければ (A)
If Len(Trim$(Cells(i, 3).Value)) = 0 Then
'Bの金額初期値として保存
lngS = Cells(i, 2).Value
'Aの商品を判定用に保存
strV = Trim$(Cells(i, 1).Value)
'現在処理行より上を総チェック
For j = i - 1 To 2 Step -1
'もし商品が同じなら
If strV = Trim$(Cells(j, 1).Value) Then
'金額を合算
lngS = lngS + Cells(j, 2).Value
'(A)の判定用にCに0を入力
Cells(j, 3).Value = 0
End If
Next j
'合計金額を設定
Cells(i, 3).Value = lngS
End If
Next i
End Sub
    • good
    • 0
この回答へのお礼

早速のご回答有難うございます。
うまく動きました。
これでかなり仕事が効率アップします。
本当に有難うございました。

お礼日時:2006/07/11 16:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!