Sub helloWorld()
Dim sArr() As Variant, dArr() As Variant, i As Integer, w As Integer
Dim Dic As Object, Str As String, Total As Long
With Sheet2
sArr = .Range("A2:E" & .Range("B1000").End(xlUp).Row).Value
ReDim dArr(1 To UBound(sArr) + 10, 1 To 5)
Set Dic = CreateObject("scripting.dictionary")
For i = 1 To UBound(sArr, 1) Step 1
Str = CStr(sArr(i, 2))
If Not Dic.exists(Str) Then
w = w + 2
dArr(w - 1, 5) = Total: Total = 0
Dic.Add Str, w
dArr(w, 1) = sArr(i, 1): dArr(w, 2) = sArr(i, 2)
dArr(w, 3) = sArr(i, 3): dArr(w, 4) = sArr(i, 4)
dArr(w, 5) = sArr(i, 5): Total = sArr(i, 5)
Else
w = w + 1
dArr(w, 3) = sArr(i, 3): dArr(w, 4) = sArr(i, 4)
dArr(w, 5) = sArr(i, 5): Total = Total + sArr(i, 5)
End If
Next i
dArr(w + 1, 5) = Total
.Range("G10").Resize(w + 1, 5).ClearContents
.Range("G10").Resize(w + 1, 5).Value = dArr
.Range("G10").Resize(, 5).Value = .Range("A1").Resize(, 5).Value
End With
Set Dic = Nothing
End Sub