Задачка оказалась чуть сложнее...
Решение с учетом того что исходная таблица надодится начиная с ячейки А1
На выходе тока без форматирования и сортировкои, с оптимизацией не заморачивался, думаю можно немного ужать
Sub Кнопка3_Щелкнуть()
Dim MassIshod(10000, 1000) As Variant
Dim MassItog(10000, 1000) As Variant
Dim i As Integer
Dim j As Integer
Dim n As Integer
Dim m As Integer
Dim l As Integer
Dim k As Integer
Erase MassIshod, MassItog
Sheets("Prog".Activate
i = 4
While IsEmpty(Cells(i, 1)) = False
i = i + 1
Wend
n = i - 1
j = 4
While IsEmpty(Cells(3, j)) = False
j = j + 1
Wend
m = j - 1
For i = 3 To n
For j = 2 To m
MassIshod(i - 2, j - 1) = Cells(i, j)
Next j
Next i
MassItog(1, 1) = MassIshod(1, 1)
For j = 3 To m - 1
MassItog(1, j - 1) = MassIshod(1, j)
Next j
k = 1
For i = 2 To n - 2
For l = 1 To k
If MassItog(l, 1) = MassIshod(i, 1) Then
For j = 3 To m - 1
MassItog(l, j - 1) = MassItog(l, j - 1) + MassIshod(i, 2) * MassIshod(i, j)
Next j
Naydena = True
GoTo label1
End If
Next l
If Naydena = False Then
k = k + 1
MassItog(k, 1) = MassIshod(i, 1)
For j = 3 To m
MassItog(k, j - 1) = MassIshod(i, 2) * MassIshod(i, j)
Next j
End If
'*****
label1:
'*****
Naydena = False
Next i
Sheets("Report".Activate
Cells.Select
Selection.Clear
Cells(2, 2) = "общая сумма по группам и по датам, $"
For i = 1 To n - 2
For j = 1 To m - 2
Cells(i + 2, j) = MassItog(i, j)
Next j
Next i
End Sub