|
▼Jaka さん:
失礼しましたnanaさんの文面どおりのことを再度書いていなくて分かりにくくご迷惑をかけました。
nanaさんの質問で
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=26964;id=excel
これですが・・・・
「やりたいことは、つまりAとB列のデータがあると仮定します。Aは日付データ、Bはその日に売れた商品の数です。やりたい操作は、まずA列のデータ、つまり日付によって並べ替えます。次に、違う日付の行の間に空白行を入れます。最後に、各空白行のセルに、同じ日付の商品数の合計を出します。
問題は合計のところはうまく出せないです。なぜならセルの範囲は指定しにくいです。」
例えば、下の例でやりますと、日付を昇順後・・・その後マクロコードを使うと
最初の7月1日は合計で150となります7月の3日の合計も130になります。が、ここまでは良いのですが7月の5日290になります7月8日も250という数字になります。
つまり対象日が1日の時にその日の上2行分を加算しています。
日付 商品数
7月1日 50
7月1日 100
7月3日 70
7月3日 60
7月5日 100
7月7日 80
7月7日 60
7月8日 50
7月10日 80
7月10日 100
7月10日 70
貴兄のご提示されたコードがシンプルで素晴らしいと思い残しています。
何か出来そうで、試行錯誤していますが・・・上のような結果が出ます。
対処方法が有りましたら教えていただきたく書かせていただいた次第です。
Sub 一つづつ比較()
Dim CEL As Range
For Each CEL In Range("a1", Range("A65535").End(xlUp))
CEL.Select
If CEL.Value <> CEL.Offset(1).Value And _
CEL.Value <> "" Then
CEL.Offset(1).EntireRow.Insert
subad = Range(CEL, CEL.End(xlUp)).Offset(, 1).Address(0, 0)
CEL.Offset(1, 1).Formula = "=sum(" & subad & ")"
End If
Next
End Sub
よろしくお願いします。
|
|