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

[µo°Ý] vlookup¦X¦}ªº¸ê®Æ

¥»©«³Ì«á¥Ñ singo1232001 ©ó 2023-12-21 02:42 ½s¿è

¦^´_ 3# 198188

¥N½X»Ý©ñ¦b¤u§@ªí¼Ò²Õ  ¤£­n©ñ¦bModule1


    Dim OUT1
Private Sub Worksheet_Change(ByVal Target As Range)
If OUT1 = True Then Exit Sub
If Target.Height > 10000 Then Exit Sub
If Target.Width > 10000 Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Target.Row > 1 Then Exit Sub
If Target.Column = 11 Then
ElseIf Target.Column = 14 Then
ElseIf Target.Column = 17 Then
ElseIf Target.Column = 20 Then
Else
Exit Sub
End If
OUT1 = True
Target.Offset(1, 0).Resize(100000, 2).ClearContents
OUT1 = False
r = Cells(Rows.Count, 1).End(3).Row
For i = 2 To r
If UCase(Target.Value) = UCase(Cells(i, 3).Value) Then
OUT1 = True
For j = i To Cells(i, 3).MergeArea.Count + i - 1
w = w + 1
Target.Offset(w, 0).Resize(1, 2).Value = Cells(j, 4).Resize(1, 2).Value
sumx = sumx + Cells(j, 5)
Next
End If
Next
If w <> 0 Then Target.Offset(w + 1, 0).Resize(1, 2) = Array("Total", sumx)
OUT1 = False
End Sub

TOP

¦^´_ 7# 198188


    ¤§«eªº¥N½X ¬O¦bk1¥´¦r´N·|ª½±µÄ²µo¾Þ§@

­Y·Q­n¥´§¹¦A¤â°Ê°õ¦æ¥Î¦p¤U¥N½X
Sub test()
r = Cells(Rows.Count, 1).End(3).Row
Range("k2:u1000").ClearContents
For Each Z In Range("K1,N1,Q1,T1")
t5 = 0: t4 = 0
If Z.Value <> "" Then
    For i = 2 To r
    If UCase(Z.Value) = UCase(Cells(i, 3).Value) Then
        For j = i To Cells(i, 3).MergeArea.Count + i - 1
        t4 = t4 & "¡¶" & Cells(j, 4)
        t5 = t5 & "¡¶" & Cells(j, 5)
        tsum = tsum + Cells(j, 5)
        Next
    End If
    Next
   
    a4 = Split(Mid(t4 & "¡¶Total", 3, 9999), "¡¶")
    a5 = Split(Mid(t5 & "¡¶" & tsum, 3, 9999), "¡¶")
   
    If UBound(a4) > 0 Then
    Z.Offset(1, 0).Resize(UBound(a4) + 1, 1) = Application.Transpose(a4)
    Z.Offset(1, 1).Resize(UBound(a4) + 1, 1) = Application.Transpose(a5)
    End If
End If
Next

End Sub

TOP

GPT4
¦b±z´£¨Ñªº¹Ï¤ù¤¤¡A¥ª°¼¬O¤@­Ó¸ê®Æ¦Cªí¡A¥k°¼¬O¤@­Ó¶×Á`µ²ªG¡C³o­Ó¦Cªí¦ü¥G¬O¥Î©ó°l踪®w¦s©Î³f¬[¤Wªºª««~¡C³f¬[§Ç¸¹¦b¬Y¨Ç¦æ¬O¦X¨Öªº¡A¥B¦X¨Öªº¦æ¼Æ¤£©T©w¡C±z§Æ±æ¯à°÷¹³¥kÃä®i¥Üªº¨º¼Ë¡A³q¹L¿é¤J³f¬[§Ç¸¹¡Aª½±µ±N¬ÛÃö¸ê®ÆÂಾ¨ì¥k°¼¡C

´£¨Ñªº¥N½X¬O¤@­Ó Excel §»¡A¥Î©ó³B²z³oºØÃþ«¬ªº¸ê®ÆÂಾ¡C¥N½X¶i¦æ¤F¦p¤U¾Þ§@¡G

½T©w¼Æ¾Ú½d³ò¡C
²M°£¥Ø¼Ð½d³ò¡]K2:U1000¡^ªº¤º®e¡C
¹M¾ú¯S©wªº¦C¡]K1, N1, Q1, T1¡^¡A³o¨Ç¦C¦ü¥G¬O¥Î¨Ó«ü©w¤£¦Pªº³f¬[§Ç¸¹¡C
¹ï©ó¨C­Ó«ü©wªº³f¬[§Ç¸¹¡A¥N½X´M§ä¥ª°¼¦Cªí¤¤©Ò¦³¤Ç°tªº¦æ¡C
±N¤Ç°t¦æ¤¤ªº¸ê®Æ½Æ»s¨ì¥k°¼ªº¬ÛÀ³¦ì¸m¡C
­pºâ¨Ã²K¥[Á`¼Æ¨ì³Ì«á¡C
ª`ÄÀ±zªº¥N½X¡A¥H«K©ó²z¸Ñ¨C¤@³¡¤Àªº¥\¯à¡G

vb
Copy code
Sub test()
    ' Àò¨ú³Ì«á¤@¦æªº¦æ¸¹
    r = Cells(Rows.Count, 1).End(xlUp).Row
    ' ²M°£K2¨ìU1000½d³ò¤ºªº©Ò¦³¤º®e
    Range("k2:u1000").ClearContents
   
    ' ¹M¾úK1, N1, Q1, T1³o¥|¦Cªº³æ¤¸®æ
    For Each Z In Range("K1,N1,Q1,T1")
        t5 = 0: t4 = 0 ' ªì©l¤ÆÅܶq
        ' ¦pªG·í«e³æ¤¸®æ¦³­È
        If Z.Value <> "" Then
            ' ¹M¾ú2¨ì³Ì«á¤@¦æ
            For i = 2 To r
                ' ¦pªG·í«e¦Cªº­È»PC¦Cªº­È¬Û¦P¡]¤£°Ï¤À¤j¤p¼g¡^
                If UCase(Z.Value) = UCase(Cells(i, 3).Value) Then
                    ' ¹M¾ú¦X¨Ö°Ï°ìªº¨C¤@¦æ
                    For j = i To Cells(i, 3).MergeArea.Count + i - 1
                        t4 = t4 & "¡¶" & Cells(j, 4)
                        t5 = t5 & "¡¶" & Cells(j, 5)
                        tsum = tsum + Cells(j, 5)
                    Next
                End If
            Next
            
            ' ¤Á³Î¦r²Å¦êÀò¨ú¸ê®Æ¼Æ²Õ
            a4 = Split(Mid(t4 & "¡¶Total", 3, 9999), "¡¶")
            a5 = Split(Mid(t5 & "¡¶" & tsum, 3, 9999), "¡¶")
            
            ' ¦pªG¼Æ²Õ¦³¸ê®Æ
            If UBound(a4) > 0 Then
                ' ±N¼Æ¾Ú¶ñ¥R¨ì«ü©wªº³æ¤¸®æ°Ï°ì
                Z.Offset(1, 0).Resize(UBound(a4) + 1, 1) = Application.Transpose(a4)
                Z.Offset(1, 1).Resize(UBound(a4) + 1, 1) = Application.Transpose(a5)
            End If
        End If
    Next
End Sub
½Ðª`·N¡A³o¬q¥N½X¬O°ò©ó°²©w³f¬[§Ç¸¹¦C¡]C¦C¡^ªº¦X¨Ö°Ï°ì¥i¥H³q¹L .MergeArea.Count ¥¿½TÀò±o¡C¥t¥~¡A³o¬q¥N½X¨Ï¥Î¤F UCase ¨ç¼Æ¨Ó¶i¦æ¤£°Ï¤À¤j¤p¼gªº¤ñ¸û¡C¦pªG±zªº³f¬[§Ç¸¹°Ï¤À¤j¤p¼g¡A«h¤£À³¨Ï¥Î UCase ¨ç¼Æ¡C

TOP

¦^´_ 13# 198188


    ¤Á³Î°Ï¹j¥Î¦Ó¤w
¥i¯à¬Obig5 Âàutf-8²§±`
§â¤T¨¤«¬ §ï¦¨¨â­Ó¡F¡F¦n¤F

TOP

        ÀR«ä¦Û¦b : µêªÅ¦³ºÉ¡D§ÚÄ@µL½a¡AµoÄ@®e©ö¦æÄ@Ãø¡C
ªð¦^¦Cªí ¤W¤@¥DÃD