Gộp dữ liệu trùng lặp

Liên hệ QC

tranhuunguyen

Thành viên mới
Tham gia
25/8/13
Bài viết
19
Được thích
1
Cột A Cột B
a 1
a 2
b 3
b 4
b 5

Nếu cột A có những chữ giống nhau thì cột B sẽ gộp lại cách nhau bởi dấu phẩy chẳng hạn, ví dụ :
a 1,2
b 3,4,5

Các bạn giúp mình nhé
VBA hay công thức cũng được, công thức càng tốt
Cảm ơn các bạn!!
 

File đính kèm

Cột A Cột B
a 1
a 2
b 3
b 4
b 5

Nếu cột A có những chữ giống nhau thì cột B sẽ gộp lại cách nhau bởi dấu phẩy chẳng hạn, ví dụ :
a 1,2
b 3,4,5

Các bạn giúp mình nhé
VBA hay công thức cũng được, công thức càng tốt
Cảm ơn các bạn!!
Bạn thử cách VBA

Mã:
Sub GopDuLieu()
Dim sarr, rarr()
Dim dic As Object
Dim Cot_DL As Long, Cot_KQ As Long, lr As Long, Tong As Long
Set dic = CreateObject("scripting.dictionary")
With Sheets("Sheet1")
    lr = .Range("A" & Rows.Count).End(xlUp).Row
    sarr = .Range("A1:B" & lr).Value
    ReDim rarr(1 To UBound(sarr), 1 To 2)
    For Cot_DL = 1 To UBound(sarr)
        
            If Not dic.exists(sarr(Cot_DL, 1)) Then
                Cot_KQ = Cot_KQ + 1
                dic.Add sarr(Cot_DL, 1), Cot_KQ
                rarr(Cot_KQ, 1) = sarr(Cot_DL, 1)
                rarr(Cot_KQ, 2) = sarr(Cot_DL, 2)
            Else
                Tong = dic.Item(sarr(Cot_DL, 1))
                rarr(Tong, 2) = rarr(Tong, 2) & ", " & sarr(Cot_DL, 2)
            End If
    Next Cot_DL
    .Range("D1:E" & lr).ClearContents
    .Range("D1").Resize(Cot_KQ, 2) = rarr
End With
End Sub
 

File đính kèm

Bạn thử cách VBA

Mã:
Sub GopDuLieu()
Dim sarr, rarr()
Dim dic As Object
Dim Cot_DL As Long, Cot_KQ As Long, lr As Long, Tong As Long
Set dic = CreateObject("scripting.dictionary")
With Sheets("Sheet1")
    lr = .Range("A" & Rows.Count).End(xlUp).Row
    sarr = .Range("A1:B" & lr).Value
    ReDim rarr(1 To UBound(sarr), 1 To 2)
    For Cot_DL = 1 To UBound(sarr)
       
            If Not dic.exists(sarr(Cot_DL, 1)) Then
                Cot_KQ = Cot_KQ + 1
                dic.Add sarr(Cot_DL, 1), Cot_KQ
                rarr(Cot_KQ, 1) = sarr(Cot_DL, 1)
                rarr(Cot_KQ, 2) = sarr(Cot_DL, 2)
            Else
                Tong = dic.Item(sarr(Cot_DL, 1))
                rarr(Tong, 2) = rarr(Tong, 2) & ", " & sarr(Cot_DL, 2)
            End If
    Next Cot_DL
    .Range("D1:E" & lr).ClearContents
    .Range("D1").Resize(Cot_KQ, 2) = rarr
End With
End Sub

Cảm ơn bạn nha!
 
Cột A Cột B
a 1
a 2
b 3
b 4
b 5

Nếu cột A có những chữ giống nhau thì cột B sẽ gộp lại cách nhau bởi dấu phẩy chẳng hạn, ví dụ :
a 1,2
b 3,4,5

Các bạn giúp mình nhé
VBA hay công thức cũng được, công thức càng tốt
Cảm ơn các bạn!!
Mấy cái vụ gộp này trên diễn đàn nói rất nhiều.
hàm tự tạo nè!
 

File đính kèm

Web KT

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

Back
Top Bottom