Sub dd()
Dim a, z As New Collection, v,v1
a = Sheets("DATA").Range("A1").CurrentRegion.Value
For i = 2 To UBound(a, 1)
On Error Resume Next
z.Add Key:=CStr(a(i, 1)), Item:=New Collection
With z(CStr(a(i, 1)))
.Add Key:=CStr(Month(CDate(a(i, 2)))), Item:=Array(New Collection,CreateObject("System.Collections.Arraylist"),Month(Cdate(a(i,2))))
If Weekday(CDate(a(i, 2))) = 1 Then
.Item(CStr(Month(CDate(a(i, 2)))))(0).Add a(i, 2)
ElseIf a(i,4) > 0 then
.Item(CStr(Month(CDate(a(i, 2)))))(1).Add a(i, 4)
End If
End With
On Error GoTo 0
Next i
Dim tt as long
With Sheets.Add
For i = 2 To UBound(a, 1)
Set v = z(CStr(a(i, 1)))(CStr(Month(CDate(a(i, 2)))))(0)
v1 = Application.Sum(z(CStr(a(i, 1)))(CStr(Month(CDate(a(i, 2)))))(1).Toarray())
a(i, 5) = v.Count + v1
a(i,6) = a(i,5) + v1
Next i
.Cells(1, 1).Resize(UBound(a), )).Value = a
End With
End Sub
Bookmarks