

Option Explicit
Sub abc()
Dim a, i, j, n, d(1)
a = Sheets("sheet1").[a1].CurrentRegion.Value
ReDim b(UBound(a, 2), 10 ^ 3) '最多支持100个种类,如果爆掉自己修改
For i = 0 To UBound(d)
Set d(i) = CreateObject("scripting.dictionary")
Next
For j = 3 To UBound(a, 2)
d(0)(a(1, j)) = j - 2
b(j - 2, 0) = a(1, j)
Next
n = 1: b(0, 1) = a(1, 2)
For i = 2 To UBound(a)
If Not d(1).exists(a(i, 1)) Then
n = n + 1: d(1)(a(i, 1)) = n: b(0, n) = a(i, 1)
Else
Exit For
End If
For j = 3 To UBound(a, 2)
If IsNumeric(a(i, j)) Then
b(d(0)(a(1, j)), d(1)(a(i, 1))) = a(i, j)
' b(d(0)(a(1, j)), d(1)(a(i, 1))) = b(d(0)(a(1, j)), d(1)(a(i, 1))) + a(i, j) + a(i, 2)
' b(d(0)(a(1, j)), 1) = b(d(0)(a(1, j)), 1) + a(i, 2)
End If
Next
Next
With Sheets("sheet2")
.Cells.ClearContents
.[a1].Resize(UBound(b) + 1, n + 1) = b
End With
End Sub