Liệt kê các tháng có phát sinh dữ liệu vào 1 ô theo dạng chuỗi (1 người xem)

Người dùng đang xem chủ đề này

Nguyễn Hồng Quang

Thành viên GPE Hà Nội
Tham gia
8/6/07
Bài viết
1,203
Được thích
877
Giới tính
Nam
Nghề nghiệp
Kế toán
Em có 1 bảng dữ liệu bán hàng theo từng kỳ của các mã hàng
Đối với từng mã hàng Em muốn liệt kê các tháng có phát sinh hàng bán vào 1 ô theo dạng chuỗi. Nếu hàng nào không có phát sinh bán thì để trống
(Chi tiết em đã trình bày và làm ở ô T5 trong bảng tính gửi kèm)
Mong các anh, chị giúp đỡ
Em xin cảm ơn
 

File đính kèm

Bạn định dạng cột T dạng Text rồi chạy sub sau
Mã:
Sub GhiChu()
Dim i As Long, j As Long
Dim Kq As String
For i = 5 To Range("A65536").End(3).Row
    For j = 3 To 18
        If Cells(i, j).Value > 0 Then
            Kq = Kq & Cells(3, j) & "/" & Cells(2, j) & ";"
        End If
    Next
    If Len(Kq) Then Cells(i, 20) = Left(Kq, Len(Kq) - 1)
    Kq = ""
Next
End Sub
 
Em có 1 bảng dữ liệu bán hàng theo từng kỳ của các mã hàng
Đối với từng mã hàng Em muốn liệt kê các tháng có phát sinh hàng bán vào 1 ô theo dạng chuỗi. Nếu hàng nào không có phát sinh bán thì để trống
(Chi tiết em đã trình bày và làm ở ô T5 trong bảng tính gửi kèm)
Mong các anh, chị giúp đỡ
Em xin cảm ơn
Liên quan đến nối chuỗi có điều kiên, cứ dùng JoinText hoặc JoinIf
Tặng bạn nguyên bộ hàm (bao gồm toàn bộ các hàm về nối chuỗi có điều kiện) ở trong file đính kèm dưới đây
Bạn có thể áp dụng trực tiếp vào cell như sau:
Hoặc:
Mã:
=joinif("; ",$C5:$R5,">0",$C$3:$R$3&"/"&$C$2:$R$2)
Hoặc:
Mã:
=JoinText("; ",IF($C5:$R5>0,$C$3:$R$3&"/"&$C$2:$R$2,1/0))
Tùy ý sử dụng
 

File đính kèm

Liên quan đến nối chuỗi có điều kiên, cứ dùng JoinText hoặc JoinIf
Tặng bạn nguyên bộ hàm (bao gồm toàn bộ các hàm về nối chuỗi có điều kiện) ở trong file đính kèm dưới đây
Bạn có thể áp dụng trực tiếp vào cell như sau:
Hoặc:
Mã:
=joinif("; ",$C5:$R5,">0",$C$3:$R$3&"/"&$C$2:$R$2)
Hoặc:
Mã:
=JoinText("; ",IF($C5:$R5>0,$C$3:$R$3&"/"&$C$2:$R$2,1/0))
Tùy ý sử dụng
Cảm ơn anh ndu96081631. Hàm chạy rất tuyệt. Kể từ hôm giao lưu vừa rồi với anh ở Hà Nội, hôm nay mới lại được gặp anh trên GPE
 
Bạn định dạng cột T dạng Text rồi chạy sub sau
Mã:
Sub GhiChu()
Dim i As Long, j As Long
Dim Kq As String
For i = 5 To Range("A65536").End(3).Row
    For j = 3 To 18
        If Cells(i, j).Value > 0 Then
            Kq = Kq & Cells(3, j) & "/" & Cells(2, j) & ";"
        End If
    Next
    If Len(Kq) Then Cells(i, 20) = Left(Kq, Len(Kq) - 1)
    Kq = ""
Next
End Sub
Cảm ơn anh dhn46. Code chạy ra kết quả đúng như em mong muốn
Cho em hỏi thêm chút là khi em bỏ cái đoạn code
If Len(Kq) Then Cells(i, 20) = Left(Kq, Len(Kq) - 1)
Kq = ""
Thì kết quả vẫn ra đúng. Vậy có cần đoạn này trong code không anh
 
Cảm ơn anh dhn46. Code chạy ra kết quả đúng như em mong muốn
Cho em hỏi thêm chút là khi em bỏ cái đoạn code
If Len(Kq) Then Cells(i, 20) = Left(Kq, Len(Kq) - 1)
Kq = ""
Thì kết quả vẫn ra đúng. Vậy có cần đoạn này trong code không anh
Bỏ 2 dòng đó thì làm gì có kết quả?
 

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

Back
Top Bottom