- Sub aaa()
- Dim arr, brr, i&, j&, k&
- arr = [a1].CurrentRegion
- ReDim brr(1 To UBound(arr), 1 To 2)
- For i = 2 To UBound(arr)
- For k = 1 To UBound(brr)
- If brr(k, 1) = "" Then brr(k, 1) = arr(i, 2): Exit For
- If brr(k, 1) = arr(i, 2) Then Exit For
- Next k
- For j = 3 To UBound(arr, 2)
- brr(k, 2) = brr(k, 2) + arr(i, j)
- Next j
- Next i
- [j2].Resize(UBound(brr), 2) = brr
- End Sub
- Sub bbb()
- Dim arr, brr, r&, i&, j&, d As Object
- arr = [a1].CurrentRegion
- ReDim brr(1 To UBound(arr), 1 To 2)
- Set d = CreateObject("scripting.dictionary")
- For i = 2 To UBound(arr)
- If Not d.exists(arr(i, 2)) Then
- r = r + 1
- d(arr(i, 2)) = r
- brr(r, 1) = arr(i, 2)
- End If
- For j = 3 To UBound(arr, 2)
- brr(d(arr(i, 2)), 2) = brr(d(arr(i, 2)), 2) + arr(i, j)
- Next j
- Next i
- [j2].Resize(d.Count, 2) = brr
- End Sub
复制代码 |