簡単に集計したいとのことですがマクロを使ったからといって必ずしも良い方法ではありません。マクロは作業列と関数を使った方法に比べてデータが多くなればはるかに計算速度が遅くなります。
作業列と配列数式などを使わない関数で処理できるのでしたらそのことを推奨します。お尋ねのようなケースはマクロでなくとも処理できるケースなのでその方法を次に示します。
元のデータがシート1に有って日付、品名、個数の項目名がA1セルからC1セルに、各データが下方に入力されているとします。
お求めの表では日付が自動的に表示され、品名が日付が変わっても同じ順序で表示させるようにするためには、しかもA列での日付は同じ日付の場合には空のセルにするなど結構面倒な作業になります。そのためシート1ではD列からF列までに作業列を作ることにします。
D2セルには次の式を入力して下方にドラッグコピーします。
=IF(B2="","",IF(A2<>"",ROUNDDOWN(MAX(D$1:D1),-2)+101,IF(COUNTIF(INDEX(B:B,MATCH(10^10,A$1:A2)):B2,B2)=1,D1+1,"")))
E2セルには次の式を入力して下方にドラッグコピーします。
=IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,MAX(E$1:E1)+1,INDEX(E$1:E1,MATCH(B2,B:B,0))))
F2セルには次の式を入力して下方にドラッグコピーします。
=IF(B2="","",IF(A2<>"",A2*1000+E2,ROUNDDOWN(F1,-3)+E2))
次にお求めの表をシート2に作成するとして
A1セルに日付、B1セルに品名、C1セルに個数と項目名を入力します。
A2セルには次の式を入力して下方にドラッグコピーします。
=IF(ROW(A1)>COUNT(Sheet1!D:D),"",IF(INDEX(Sheet1!A:A,MATCH(SMALL(Sheet1!D:D,ROW(A1)),Sheet1!D:D,0))=0,"",INDEX(Sheet1!A:A,MATCH(SMALL(Sheet1!D:D,ROW(A1)),Sheet1!D:D,0))))
B2セルには次の式を入力して下方にドラッグコピーします。
=IF(ROW(A1)>COUNT(Sheet1!D:D),"",INDEX(Sheet1!B:B,MATCH(LOOKUP(10^10,A$1:A2)*1000+ROW()-MATCH(10^10,A$1:A2)+1,Sheet1!F:F,0)))
C2セルには次の式を入力して下方にドラッグコピーします。
=IF(B2="","",SUMIF(Sheet1!F:F,LOOKUP(10^10,A$1:A2)*1000+ROW()-MATCH(10^10,A$1:A2)+1,Sheet1!C:C))
最後にA列を選択してセルの表示形式から日付にします。
なお、シート1での作業列が目障りでしたらはそれらの列を選択して右クリックし「非表示」を選択すればよいでしょう。