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

[µo°Ý] ¦p¦ó¨Ï¥Î°}¦C+¦r¨åª«¥ó¤ñ¹ï¸ê®Æªº®É­Ô¥ÎLIKE»yªk?

¦^´_ 7# ­ã´£³¡ªL


    ÁÂÁ½׾Â,ÁÂÁ«e½ú
«á¾ÇÂǦ¹©«¾Ç²ß«e½úªº¤è®×,«á¾Ç¾Ç²ß¤ß±oµù¸Ñ¦p¤U,½Ð«e½ú¦A«ü¾É

°õ¦æµ²ªG:



Public Const R = 1000
Sub ¨ú¼Æ3()
Dim i&, j&, Arr, Brr, Drr, T, SS, xD, xD1, TT$, M%, N%, Y$
'¡ô«Å§iÅܼÆ
T = Timer
[B:B].ClearContents: [H3:H4] = ""
'¡ô²M°£µ²ªGÄæ¸ê®Æ
Arr = [A1].Resize(R):  Brr = [B1].Resize(R):  Drr = [D1].Resize(R)
'¡ô¥O(Arr,Brr,Drr)¦U¬O¤Gºû°}¦C±a¤JÀx¦s®æ­È
Set xD = CreateObject("Scripting.Dictionary")
Set xD1 = CreateObject("Scripting.Dictionary")
'¡ô¥O(xD,xD1)¦U¬O¦r¨å
For j = 1 To UBound(Drr)
'¡ô³]¶¶°j°é
    TT = Drr(j, 1)
    '¡ô¥OTTÅܼƬO °j°éDrr°}¦C­È
    M = Len(TT)
    '¡ô¥OMÅܼƬO TTÅܼƪº¦r¼Æ
    N = 1
    '¡ô¥ONÅܼƬO 1
    xD1.RemoveAll
    '¡ô¥O²MªÅ xD1¦r¨å
    Do
    '¡ô³]±ø¥ó°j°é
      For i = 1 To M
      '¡ô³]¶¶°j°é
          Y = Mid(TT, N, i)
          '¡ô¥OY¬O TTÅܼƱq ²Ä1¦r¶}©l¨ú¥k°¼ªº¦r
          If xD1(Y) = "" Then xD(Y) = xD(Y) + 1
          '¡ô¦pªGxD1¦r¨å¸Ì¨S¦³YÅܼƳokey,´N¥OxD¦r¨å¯Ç¤J,item²Ö¥[1
          xD1(Y) = 1
          '¡ô¥OYÅܼƯǤJxD1¦r¨å¸Ì,item¬O 1,ÅýxD1¦r¨å¦b¤U¦¸²MªÅ«eÂo­«½Æ
      Next i
      N = N + 1: M = M - 1
      '¡ôN.MÅܼưµÅܤÆ,¥H¥þ³¡¤å¦r¦ê²Õ¦X³v¦¸Â^¨ú
    Loop Until M = 0
    '¡ô°õ¦æ¨ì ³Ì«á¤@­Ó¦r¤¸
Next j
For i = 1 To UBound(Arr)
'¡ô³]¶¶°j°é
    Y = Arr(i, 1): j = xD(Y)
    '¡ô¥HArr°}¦C­È¬dxD¦r¨å¦^¶Çitem­È(¸Ókey¥X²{¹L´X¦¸)
    Brr(i, 1) = j
    '¡ô¼g¤JBrr°}¦C
    SS = SS + j
    '¡ô²Ö­p¦¸¼Æ
Next i
[B1].Resize(R) = Brr:  [H3] = Timer - T: [H4] = SS
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

        ÀR«ä¦Û¦b : Ä@­n¤j¡B§Ó­n°í¡B®ð­n¬X¡B¤ß­n²Ó¡C
ªð¦^¦Cªí ¤W¤@¥DÃD