Nối chuỗi ở các dòng khác nhau

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

shaming10

Thành viên mới
Tham gia
10/8/18
Bài viết
19
Được thích
5
Dear mọi người,

Em đang có vấn đề là muốn nối chuỗi các dòng khác nhau, data như sau:

1701281611875.png

Nhờ các anh/chị xem qua, cho em keyword để research hoặc cách giải vấn đề này bằng VBA.

Em xin cám ơn anh/chị.
 

File đính kèm

  • Book1.xlsx
    9.5 KB · Đọc: 8
Dear mọi người,

Em đang có vấn đề là muốn nối chuỗi các dòng khác nhau, data như sau:

View attachment 297178

Nhờ các anh/chị xem qua, cho em keyword để research hoặc cách giải vấn đề này bằng VBA.

Em xin cám ơn anh/chị.
Dùng cột phụ, xem công thức trong file
Ghi chú: Bạn không nên chen tiếng Anh vào tiếng Việt
 

File đính kèm

  • Book1 (1).xlsx
    10.2 KB · Đọc: 11
Em cám ơn anh @HieuCD nha, nhưng có cách nào khi điền chạy xong, chỉ xuất ra giá trị 1 dòng không anh?
Hiện tại công thức sẽ ra như sau:
1701399065114.png
có cách nào chỉ xuất ra được như kết quả này:
1701399109621.png
 
cách giải vấn đề này bằng VBA.
Góp vui , bạn có thể tham khảo đoạn code VBA củ chuối dưới đây
Mã:
Option Explicit

Sub Gopvui()
Dim i&, j&, Lr&, t&, k&
Dim Arr(), KQ(), D, S
On Error Resume Next
With Sheet1
Lr = .Cells(1000000, 3).End(xlUp).Row
Arr = .Range("A2:C" & Lr).Value
    For i = 1 To UBound(Arr)
        If Arr(i, 1) <> Empty Then If D = Empty Then D = i Else D = D & "," & i
    Next i
S = Split(D, ",")
ReDim KQ(1 To UBound(S) + 1, 1 To 3)
    For j = 0 To UBound(S)
        t = t + 1
        KQ(t, 1) = Arr(S(j), 1)
        For k = S(j) To S(j + 1) - 1
            If Arr(k, 2) <> Empty Then If KQ(t, 2) = Empty Then KQ(t, 2) = Arr(k, 2) Else KQ(t, 2) = KQ(t, 2) & ", " & Arr(k, 2)
            If Arr(k, 3) <> Empty Then If KQ(t, 3) = Empty Then KQ(t, 3) = Arr(k, 3) Else KQ(t, 3) = KQ(t, 3) & ", " & Arr(k, 3)
        Next k
    Next j
.Range("G7").Resize(t, 3) = KQ
End With
End Sub
 

File đính kèm

  • Nối chuỗi ở nhiều dòng.xlsm
    16 KB · Đọc: 7
Dear mọi người,

Em đang có vấn đề là muốn nối chuỗi các dòng khác nhau, data như sau:

View attachment 297178

Nhờ các anh/chị xem qua, cho em keyword để research hoặc cách giải vấn đề này bằng VBA.

Em xin cám ơn anh/chị.
1. Bạn dùng UNIQUE lọc lấy mã khách hàng duy nhất (nếu bạn dùng office 365 hoặc 2021, nếu bạn không dùng office này thì có thể search lọc duy nhất để lấy mã khách hàng)
2. Sau khi lọc được mã khách hàng, bạn dùng TEXTJOIN để nối các chuỗi tương ứng như trong file (TEXTJOIN có từ office 2019).
 

File đính kèm

  • Textjoin.xlsx
    12.1 KB · Đọc: 7
1. Bạn dùng UNIQUE lọc lấy mã khách hàng duy nhất (nếu bạn dùng office 365 hoặc 2021, nếu bạn không dùng office này thì có thể search lọc duy nhất để lấy mã khách hàng)
2. Sau khi lọc được mã khách hàng, bạn dùng TEXTJOIN để nối các chuỗi tương ứng như trong file (TEXTJOIN có từ office 2019).
Em cám ơn anh @hoangminhtien nhiều nha.
Bài đã được tự động gộp:

Góp vui , bạn có thể tham khảo đoạn code VBA củ chuối dưới đây
Mã:
Option Explicit

Sub Gopvui()
Dim i&, j&, Lr&, t&, k&
Dim Arr(), KQ(), D, S
On Error Resume Next
With Sheet1
Lr = .Cells(1000000, 3).End(xlUp).Row
Arr = .Range("A2:C" & Lr).Value
    For i = 1 To UBound(Arr)
        If Arr(i, 1) <> Empty Then If D = Empty Then D = i Else D = D & "," & i
    Next i
S = Split(D, ",")
ReDim KQ(1 To UBound(S) + 1, 1 To 3)
    For j = 0 To UBound(S)
        t = t + 1
        KQ(t, 1) = Arr(S(j), 1)
        For k = S(j) To S(j + 1) - 1
            If Arr(k, 2) <> Empty Then If KQ(t, 2) = Empty Then KQ(t, 2) = Arr(k, 2) Else KQ(t, 2) = KQ(t, 2) & ", " & Arr(k, 2)
            If Arr(k, 3) <> Empty Then If KQ(t, 3) = Empty Then KQ(t, 3) = Arr(k, 3) Else KQ(t, 3) = KQ(t, 3) & ", " & Arr(k, 3)
        Next k
    Next j
.Range("G7").Resize(t, 3) = KQ
End With
End Sub
Em cám ơn anh @HUONGHCKT nhiều nha.
 
Web KT
Back
Top Bottom