Sub es()
Dim t(), i As Long, m As Object, x As Long, z
Application.ScreenUpdating = 0
Set m = CreateObject("Scripting.Dictionary")
t = Range("a15:ad" & Cells(Rows.Count, 1).End(3).Row)
Range("a15:ad" & Cells(Rows.Count, 1).End(3).Row).ClearContents
For i = 1 To UBound(t)
z = t(i, 1)
If m.Exists(z) Then
t(m(z), 30) = t(m(z), 30) + t(i, 30)
Else
x = x + 1
For c = 1 To 30: t(x, c) = t(i, c): Next c: m(z) = x
End If
Next i
[a15].Resize(x, 30) = t
End Sub