Sub test3()
Dim brr(1 To 100, 1 To 10), arr As Variant, d As Object, m, n, i As Integer
Set d = CreateObject("scripting.dictionary")
arr = Sheet1.Range("a1").CurrentRegion
m = 1: n = 1
For i = 2 To UBound(arr)
If Not d.exists(arr(i, 2)) Then
m = m + 1
d(arr(i, 2)) = m
brr(m, 1) = arr(i, 2)
End If
If Not d.exists(arr(i, 5)) Then
n = n + 1
d(arr(i, 5)) = n
brr(1, 2 * n - 2) = arr(i, 5) & "等级出现次数"
brr(1, 2 * n - 1) = arr(i, 5)
End If
brr(d(arr(i, 2)), d(arr(i, 5)) * 2 - 2) = brr(d(arr(i, 2)), d(arr(i, 5)) * 2 - 2) + 1
brr(d(arr(i, 2)), d(arr(i, 5)) * 2 - 1) = brr(d(arr(i, 2)), d(arr(i, 5)) * 2 - 1) + arr(i, 6)
Next i
Sheet1.Range("l2").Resize(m, 2 * n + 1) = brr
MsgBox "ok"
End Sub
|