'自己手工再处理一下,,,
Option Explicit
Sub test()
Dim arr, i, j, n, t, dic
Set dic = CreateObject("scripting.dictionary")
arr = [a1].CurrentRegion.Resize(, 3)
ReDim brr(2 * UBound(arr, 1), 1 To 30), m(UBound(brr, 2))
For i = 2 To UBound(arr, 1)
t = Split(arr(i, 2), "|")
For j = 0 To UBound(t)
t(j) = Trim(t(j))
If Not dic.exists(t(j)) Then
n = n + 1
dic(t(j)) = n: brr(0, n) = t(j)
End If
m(dic(t(j))) = m(dic(t(j))) + 1
brr(m(dic(t(j))), dic(t(j))) = arr(i, 3)
Next
Next
[f6].Resize(UBound(brr) + 1, n) = brr
End Sub |