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

[µo°Ý] ¦C¥X§ó¦hªº¹ïÀ³¸ê®Æ

´M§ä¥Ø¼Ð¥u¦³¤@­Ó, ¥Î¿z¿ï¦A¶K§Y¥i

TOP

²¤Æ¤£¤F,
Sub TEST()
Dim Arr, xD, i&, j%, N&, T$, V%
Set xD = CreateObject("scripting.dictionary")
Arr = Range([¥Ø¼Ð!C1], [¥Ø¼Ð!A65536].End(xlUp))
For i = 2 To UBound(Arr)
    For j = 1 To 3 Step 2
        T = Arr(i, j):  If T <> "" Then xD(T) = 1
        If T Like "*-*-*" Then xD(Left(T, InStrRev(T, "-") - 1)) = 1
    Next j
Next i
Arr = Range([®w¦s!D1], [®w¦s!A65536].End(xlUp))
For i = 2 To UBound(Arr)
    For j = 1 To 3 Step 2
        T = Arr(i, j):  V = V + xD(T)
        If T Like "*-*-*" Then V = V + xD(Left(T, InStrRev(T, "-") - 1))
    Next j
    If V = 0 Then GoTo 101
    N = N + 1: V = 0
    For j = 1 To 4: Arr(N, j) = Arr(i, j): Next
101: Next i
[¦¨ªG!A2:A6000].ClearContents
If N > 0 Then [¦¨ªG!A2:D2].Resize(N) = Arr
End Sub


============================

TOP

¦^´_ 9# qaqa3296


¤£¤F¸Ñ¤Ö¸ê®Æ¬O¦ó·N???
®Ú¾Ú´y­z, ±N³W®æ 231-215-??? ²Ä¤T¦r¸`¥h°£, °µ¬°¥t¤@¤ñ¹ï±ø¥ó,
¤å¦r«e«á­Y§t¦³ªÅ¥Õ¦r¤¸, ®M¤@­ÓTRIM(ARR(i,3)) §Y¥i~~
100-1001.3.V1 ³o­Ó¬O§_ÁÙ­n¨ú¥X 100-1001 °µ¬°±ø¥ó,
¦h¦C¥X´X­Ó¤£¦P«¬¦¡ªº³W®æ¤å¦r, ¤Î¨äºI¨ú³W«h~~~

©ÎªÌ, ³W®æªº«e8½X¬°©T©w¦@¥Î, ¤§«áªº¬°ÅܤƧÎ, ³£µø¬°¬Û¦P???

TOP

³oºØ¤å¦r¤ñ¹ï¤Ó¶O©P§é,
¬Ý¬Ý¬O§_¦p¤U³W«h, ­Y¦³¨ä¥¦, ¦A¸É¥R
©î½X­ì«h.rar (2.37 KB)

¥i¯à¨SªÅÀ°¦£¼g~~

TOP

¥»©«³Ì«á¥Ñ ­ã´£³¡ªL ©ó 2020-8-22 15:05 ½s¿è

´ú¸Õ¸ê®Æ¤Ó¤Ö, µLªk¦h°µÅçÃÒ:
Sub TEST_V1()
Dim Arr, A, xD, i&, j%, N&, T$, V%
[¦¨ªG!A2:D6000].ClearContents
Set xD = CreateObject("scripting.dictionary")
Arr = Range([¥Ø¼Ð!C1], [¥Ø¼Ð!A65536].End(xlUp))
For i = 2 To UBound(Arr)
    T = Trim(Arr(i, 1)): If T <> "" Then xD(T) = 1
    T = ©î¸Ñ½s¸¹(Trim(Arr(i, 3))): If T = "" Then GoTo 101
    For Each A In Split(T, "/"): xD(A & "") = 1: Next
101: Next i
Arr = Range([®w¦s!D1], [®w¦s!A65536].End(xlUp))
For i = 2 To UBound(Arr)
    If xD("|" & i) > 0 Then GoTo 102 '¦pªG¸Ó¦æ¤w³Q´£¨ú¹L, ²¤¹L, ÁקK­«Âд£¨ú
    T = Trim(Arr(i, 1)): If xD(T) > 0 Then V = 1: GoTo 999 '[«~¸¹]¬Û²Å§Yª½±µ´£¨ú
    T = Trim(Arr(i, 3)): If T = "" Then GoTo 102
    T = ©î¸Ñ½s¸¹(T) '©î¸Ñ[³W®æ]
    For Each A In Split(T, "/")
        If xD(A & "") > 0 Then V = 1: Exit For
    Next
999:
   If V = 0 Then GoTo 102
   N = N + 1: V = 0
   For j = 1 To 4: Arr(N, j) = Trim(Arr(i, j)): Next
   xD("|" & i) = 1 '¤w´£¨ú¦æ¸¹¦ì¸m,°O¿ý¤J¦r¨å
102: Next i
If N > 0 Then [¦¨ªG!A2:D2].Resize(N) = Arr
End Sub

'==========================================
Function ©î¸Ñ½s¸¹(xS$) As String
Dim TT$, j%, ST$
If xS = "" Then Exit Function
If xS & "-" Like "####[-.]*" Then TT = Left(xS, 4)
If xS & "A" Like "####[A-Z]*" Then TT = Left(xS, 4)
If xS & "-" Like "?????[-.]*" Then TT = Left(xS, 5)
If xS & "-" Like "???-????[-.]*" Then TT = Left(xS, 8)
xS = xS & "-"
For j = Len(TT) + 2 To Len(xS)
    If Mid(xS, j, 1) Like "[-.]" Then TT = Left(xS, j - 1) & "/" & TT
Next j
©î¸Ñ½s¸¹ = TT
End Function


'¥þ³¡¶K¤J¼Ò²Õ===============================================

TOP

Sub TEST_V1()
Dim Arr, A, xD, i&, j%, N&, T$, V%
[¦¨ªG!A2:D6000].ClearContents
Set xD = CreateObject("scripting.dictionary")
Arr = Range([¥Ø¼Ð!C1], [¥Ø¼Ð!A65536].End(xlUp))
For i = 2 To UBound(Arr)
    T = Trim(Arr(i, 1)): If T <> "" Then xD(T) = 1
    T = ©î¸Ñ½s¸¹(Trim(Arr(i, 3))): If T = "" Then GoTo 101
    For Each A In Split(T, "/"): xD(A & "") = 1: Next
101: Next i
Arr = Range([®w¦s!D1], [®w¦s!A65536].End(xlUp))
For i = 2 To UBound(Arr)
    If xD("|" & i) > 0 Then GoTo 102 '¦pªG¸Ó¦æ¤w³Q´£¨ú¹L, ²¤¹L, ÁקK­«Âд£¨ú
    T = Trim(Arr(i, 1)): If Val(xD(T)) > 0 Then V = 1: GoTo 999 '[«~¸¹]¬Û²Å§Yª½±µ´£¨ú
    T = Trim(Arr(i, 3)): If T = "" Then GoTo 102
    T = ©î¸Ñ½s¸¹(T) '©î¸Ñ[³W®æ]
    For Each A In Split(T, "/")
        If A <> "" And Val(xD(A & "")) > 0 Then V = 1: Exit For
    Next
999:
   If V = 0 Then GoTo 102
   N = N + 1: V = 0
   For j = 1 To 4: Arr(N, j) = Trim(Arr(i, j)): Next
   xD("|" & i) = 1 '¤w´£¨ú¦æ¸¹¦ì¸m,°O¿ý¤J¦r¨å
102: Next i
If N > 0 Then [¦¨ªG!A2:D2].Resize(N) = Arr
End Sub

'==========================================
Function ©î¸Ñ½s¸¹(xS$) As String
Dim TT$, j%, ST$
If xS = "" Then Exit Function
If Left(xS, 4) Like "####" Then TT = Left(xS, 4)
If Left(xS, 5) Like "####[A-Z]" Then TT = Left(xS, 5) & "/" & TT
If Left(xS, 5) Like "[A-Z]####" Then TT = Left(xS, 5) & "/" & TT
If Left(xS, 8) Like "???-????" Then TT = Left(xS, 8) & "/" & TT
xS = xS & "-"
For j = Len(TT) + 2 To Len(xS)
    If Mid(xS, j, 1) Like "[-.(]" Then TT = Left(xS, j - 1) & "/" & TT
Next j
©î¸Ñ½s¸¹ = TT
End Function

¼Ò½k¤¤¤S¤£¯à¶Ã§ì, Ãø~~~

TOP

¦^´_ 59# °a¤ªºµ


dic--keys, items
keys--¥u·|¯d¿W¤@µL¤Gªº"¯Á¤Þ­È", ©Ò¥H¤£·|­«ÂÐ
items--¥i¥H®e¯Ç¥ô¦ó«¬ºA¤º®e, ÅܤƸû¦h, ¦ý¥i±q²³æªºµÛ¤â

¨ä¹ê«Ü¦n²z¸Ñ, ¦h´X¦¸½m²ß§Y¥i,
³æÄæ¸ê®Æ:
1) ¨ú±oaÄ椺®eªº°ß¤@­È
2) ­pºâaÄæ¦U°ß¤@­Èªº¥X²{¦¸¼Æ
¨âÄæ¸ê®Æ:
1) ­pºâaÄæ¦U°ß¤@­È¦bbÄ檺¦X­p¼Æ
2) ­pºâaÄæ¦U°ß¤@­È,¥BbÄæ²Å¦X¬Y¤@±ø¥óªº¦¸¼Æ

TOP

¦^´_ 61# °a¤ªºµ


½×¾Â¦³«Ü¦h¨Ò¤l¥i°Ñ¦Ò~~
©Î¨ì³o¦h¾Ç²ß, ¦³²{¦¨¸û·sªº©«¤l·í°Ñ¦Ò:
http://club.excelhome.net/forum-2-1.html

TOP

        ÀR«ä¦Û¦b : §Ú­Ì­n°µ¦nªÀ·|ªºÀô«O¡A¤]­n°µ¦n¤º¤ßªºÀô«O¡C
ªð¦^¦Cªí ¤W¤@¥DÃD