ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

¦P¤@µo²¼¸¹½X¦C¥X©Ò¦³­q³æ½s¸¹(¦C¦b¦P¤@Àx¦s®æ)

¦^´_ 1# leiru
½Ð´ú¸Õ¬Ý¬Ý¡AÁÂÁÂ
Sub test()
Dim Arr, xD, i&, T$
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([a1], [b65536].End(3))
For i = 2 To UBound(Arr)
    T = Arr(i, 1): If T = "" Then GoTo 99
    If xD.Exists(T) Then
        xD(T) = xD(T) & "¡B" & Arr(i, 2)
    Else
        xD(T) = Arr(i, 2)
    End If
99: Next i
Range("d2").Resize(xD.Count, 1) = Application.Transpose(xD.keys)
Range("e2").Resize(xD.Count, 1) = Application.Transpose(xD.Items)
End Sub

TOP

¦^´_  samwang


    ½Ð±Ð«e½ú ¦r¨å¥u¯à1­Ókey¹ïÀ³item? ¥i¥H1­Ó¹ï¦h­Ó¶Ü?
Andy2483 µoªí©ó 2021-10-14 12:00


key¥i¥H«Ü¦h­Ó¡A¦ý¬O¨C­Ókey ¬O°ß¤@¡A¥B¹ïÀ³ªºitem¥i¥H«Ü¦h­Ó¡AÁÂÁ¡C

TOP

¦^´_  samwang


    ÁÂÁ«ü¾É
¦A½Ð±Ð
¦pªGµo²¼¸¹½X¹ïÀ³ªº«È¤á­q³æ¤£­n¥Î¡B²Å¸¹­Ó¶}©ñ¦P¤@Àx¦s®æ,
...
Andy2483 µoªí©ó 2021-10-14 12:35


Sub test2()
Dim Arr, Brr(), xD, T$, k, TC%, TC1%, R%, C%
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([a1], [b65536].End(3))
For i = 2 To UBound(Arr)
    T = Arr(i, 1): If T = "" Then GoTo 99
    If xD.Exists(T) Then
        xD(T) = xD(T) & "¡B" & Arr(i, 2)
    Else
        xD(T) = Arr(i, 2)
    End If
99: Next i
ReDim Brr(1 To xD.Count, 1 To UBound(Arr))
R = 1
For Each k In xD.keys
    xD(k) = Split(xD(k), "¡B")
    TC = UBound(xD(k)) + 2
    If TC > TC1 Then TC1 = TC
    Brr(R, 1) = k
    For C = 2 To UBound(xD(k)) + 2
        Brr(R, C) = xD(k)(C - 2)
    Next
    R = R + 1
Next
Range("g2").Resize(R - 1, TC1) = Brr
End Sub

TOP

        ÀR«ä¦Û¦b : ¤H­n¦Û·R¡A¤~¯à·R´¶¤Ñ¤Uªº¤H¡C
ªð¦^¦Cªí ¤W¤@¥DÃD