Nhờ giúp đỡ code nhóm dữ liệu theo điều kiện

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Alber

Thành viên mới
Tham gia
27/12/22
Bài viết
27
Được thích
5
Giới tính
Nữ
Xin chào anh/chị
Do máy công ty đang dùng office 2010 không dùng được hàm mới, nên nhờ anh/chị giúp dùm code nối dữ liệu khi trùng mã STT.
kết quả mong muốn như phía dưới, xin chan thành cảm ơn anh/chị.
1672218157606.png
 

File đính kèm

  • nhờ giúp đỡ gpe.xlsx
    9.7 KB · Đọc: 10
Lần chỉnh sửa cuối:
Upvote 0
Anh có thể giúp e dc ko ạ
 
Upvote 0
Anh có thể giúp e dc ko ạ
PHP:
Function MaKH(SoTT As String, CSDL As Range)
 Const FC As String = "\\"
 Dim J As Long, Rws As Integer
 
 Rws = CSDL.Rows.Count
 For J = 1 To Rws + 3
    If Cells(J, 1).Value = SoTT Then
        MaKH = Cells(J, 3).Value & FC & MaKH
    End If
 Next J
 MaKH = Left(MaKH, Len(MaKH) - 2)
End Function
 
Upvote 0
PHP:
Function MaKH(SoTT As String, CSDL As Range)
 Const FC As String = "\\"
 Dim J As Long, Rws As Integer
 
 Rws = CSDL.Rows.Count
 For J = 1 To Rws + 3
    If Cells(J, 1).Value = SoTT Then
        MaKH = Cells(J, 3).Value & FC & MaKH
    End If
 Next J
 MaKH = Left(MaKH, Len(MaKH) - 2)
End Function
Em cám ơn anh nhiều ạ!
 
Upvote 0
Xin chào anh/chị
Do máy công ty đang dùng office 2010 không dùng được hàm mới, nên nhờ anh/chị giúp dùm code nối dữ liệu khi trùng mã STT.
kết quả mong muốn như phía dưới, xin chan thành cảm ơn anh/chị.
View attachment 285200
Bạn sử dụng code sau và kiểm tra lại kết quả nhé!
PHP:
Sub Gop_DL()
    Dim Lr&, i&, Arr(), Res(1 To 10000, 1 To 3)
    Dim Dic As Object, Key$, k&
    Set Dic = CreateObject("Scripting.Dictionary")
    On Error Resume Next
    With Sheets("Sheet1")
        .Range("H4:J10000").ClearContents
        Lr = .Range("A" & Rows.Count).End(xlUp).Row
        Arr = .Range("A4:C" & Lr).Value
        For i = 1 To UBound(Arr)
            Key = Arr(i, 1)
            If Not Dic.exists(Key) Then
                k = k + 1
                Dic.Add (Key), k
                Res(k, 1) = Arr(i, 1)
                Res(k, 2) = Arr(i, 2)
                Res(k, 3) = Arr(i, 3)
            Else
                Res(Dic.Item(Key), 3) = Res(Dic.Item(Key), 3) & "//" & Arr(i, 3)
            End If
        Next i
        .Range("H4").Resize(k, 3).Value = Res
    End With
    Set Dic = Nothing
End Sub
 
Upvote 0
Bạn sử dụng code sau và kiểm tra lại kết quả nhé!
PHP:
Sub Gop_DL()
    Dim Lr&, i&, Arr(), Res(1 To 10000, 1 To 3)
    Dim Dic As Object, Key$, k&
    Set Dic = CreateObject("Scripting.Dictionary")
    On Error Resume Next
    With Sheets("Sheet1")
        .Range("H4:J10000").ClearContents
        Lr = .Range("A" & Rows.Count).End(xlUp).Row
        Arr = .Range("A4:C" & Lr).Value
        For i = 1 To UBound(Arr)
            Key = Arr(i, 1)
            If Not Dic.exists(Key) Then
                k = k + 1
                Dic.Add (Key), k
                Res(k, 1) = Arr(i, 1)
                Res(k, 2) = Arr(i, 2)
                Res(k, 3) = Arr(i, 3)
            Else
                Res(Dic.Item(Key), 3) = Res(Dic.Item(Key), 3) & "//" & Arr(i, 3)
            End If
        Next i
        .Range("H4").Resize(k, 3).Value = Res
    End With
    Set Dic = Nothing
End Sub
Dạ, e cảm ơn anh nhiều ạ!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom