Nối các cell thành chuỗi

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Xin các anh chị giúp đỡ nối các text trong nhiều cell lại thành một chuỗi như file mẫu đính kèm. Xin cảm ơn

Xem file đính kèm nhé, nhớ Enable Macro.

www.giaiphapexcel.com/diendan/threads/n%E1%BB%91i-c%C3%A1c-cell-th%C3%A0nh-chu%E1%BB%97i.30617/

Học Nhân sự Tổng hợp – Trở thành chiến binh nhân sự vững nghiệp vụ
Khóa học SprinGO phù hợp

Học Nhân sự Tổng hợp – Trở thành chiến binh nhân sự vững nghiệp vụ

Con người là một trong những yếu tố quan trọng của công ty, là tài sản quý giá của doanh nghiệp. Chính vì thế,...

Xem khóa học
★★★★★ 5 ★ 1 👤 2 ▥ 0
Quảng cáo

Bạn nên đọc

2 Responses

  1. hands says:

    Trường hợp công thức làm đựoc không bạn?

    Function Join(Rng As Range) As String
    Dim cll As Range, Tmp As String
    For Each cll In Rng
    Tmp = Tmp & cll & " "
    Next cll
    Join = Left(Tmp, Len(Tmp) – 1)
    End Function

    Mình thấy đoạn code trên ngắn mà, nếu làm công thức mình không biết có làm được ko? nhưng chắc mệt lắm
    Đoạn code trên có gì bạn không hiểu thì hỏi Anh em nhé

    Hàm của ptlong04x1 có thể bớt đi 1 biến và 2 phép tính:

    Function Join(Rng As Range) As String
        Dim cll As Range
        For Each cll In Rng
            Join = Join & cll & " "
        Next cll
        Join = RTrim(Join)
    End Function

    Tôi thấy cách dùng biến tạm để tính toán và trả về kết quả cho hàm hay hơn là tính toán trực tiếp vào tên hàm(Ý kiến cá nhân của tôi), còn dùng hàm RTrim để loại bỏ dấu cách thừa ở cuối như bạn trong trường hợp này có vẻ không đúng lắm, vì nó cắt tất cả các dấu cách ở cuối, trong khi đó trong quá trình tính toán ta chỉ thừa có 1 dấu cách ở cuối mà thôi, nếu ô cuối cùng có dấu cách ở cuối thì sao???

  2. hands says:

    Có 1 cách khác mà tôi cho là tuyệt chiêu, đó là nối các từ với nhau bằng dấu phân cách —> Ra được kết quả ta dùng TRIM để loại các dấu cách thừa (khỏi IF)
    Ví dụ hàm của bạn có thể sửa như sau:

    Function JoinText(Range As Range, Sep As String) As String
    Dim Clls As Range, Tmp As String
    For Each Clls In Range
    Tmp = Tmp & " " & Clls.Value
    Next Clls
    JoinText = Replace(WorksheetFunction.Trim(Tmp), " ", Sep)
    End FunctionCú pháp sử dụng:
    =JoinText(B2:B15," ")
    Trong đó:
    – Sep là ký tự phân cách do người dùng tùy chọn
    – Vùng B2:B15 chứa dử liệu không liên tục
    Lưu ý:
    – Bạn không nên đặt tên hàm là Join (trùng với tên hàm của VBA) vì sẽ gây hậu quả nghiêm trọng nếu có lúc nào đó bạn cần dùng đến hàm này (của VBA)
    – Đây chỉ là gợi ý về việc có thể thay thế IF chứ chưa hẳn là giải pháp hoàn hảo

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm