Sub es()
Dim t(), i As Long, m As Object
Set m = CreateObject("Scripting.Dictionary")
t = Range("c2:d" & Cells(Rows.Count, 3).End(3).Row)
For i = 1 To UBound(t)
If m.Exists(t(i, 1)) Then
t(m(t(i, 1)), 2) = t(m(t(i, 1)), 2) - t(i, 2)
Else
x = x + 1: t(x, 1) = t(i, 1): t(x, 2) = t(i, 2): m(t(i, 1)) = x
End If
Next i
[i2].Resize(x, 2) = t
End Sub