Excel cung cấp một hàm sổ làm việc và một toán tử có cùng mục đích — để kết hợp các chuỗi thành một chuỗi dài hơn. Hàm CONCATENATE và toán tử dấu và (&) về cơ bản có cùng mục đích.

Nhiều người sử dụng toán tử dấu và ưu tiên cho hàm CONCATENATE vì hàm này yêu cầu nhập ít hơn, nhưng hàm CONCATENATE sẽ trở nên vô cùng có giá trị nếu nó xử lý một loạt ô.

Thật không may, nó không có, nhưng bạn có thể tạo hàm do người dùng xác định của riêng bạn sẽ nối mọi ô trong một phạm vi rất độc đáo.

Hãy xem xét macro sau:

Function Concat1(myRange As Range, Optional myDelimiter As String)

Dim r As Range

Application.Volatile     For Each r In myRange         Concat = Concat & r & myDelimiter     Next r     If Len(myDelimiter) > 0 Then         Concat = Left(Concat, Len(Concat) - Len(myDelimiter))

End If End Function

Hàm này yêu cầu một phạm vi và cung cấp một dấu phân cách tùy chọn.

Câu lệnh “Nếu” cuối cùng xóa dấu phân cách cuối cùng khỏi chuỗi được nối. Với hàm CONCAT1, các ô có thể được thêm và xóa trong phạm vi mà không cần bảo trì bởi các công thức CONCATENATE hoặc ký hiệu và. Tất cả những gì bạn cần làm là gọi hàm theo một trong các cách sau:

=CONCAT1(C8:E10)

=CONCAT1(C8:E10,"|")

Phương pháp gọi hàm thứ hai sử dụng dấu phân cách tùy chọn, được chèn vào giữa mỗi giá trị được nối từ phạm vi C8: E10. Tuy nhiên, có một vấn đề với điều này: Nếu một ô trong phạm vi đó trống, thì bạn có thể có hai dấu phân cách tuần tự. Nếu bạn chỉ muốn có một dấu phân tách duy nhất, thì bạn cần thực hiện một thay đổi nhỏ đối với hàm:

Function Concat2(myRange As Range, Optional myDelimiter As String)

Dim r As Range

Application.Volatile     For Each r In myRange         If Len(r.Text) > 0 Then             Concat = Concat & r & myDelimiter         End If     Next r     If Len(myDelimiter) > 0 Then         Concat = Left(Concat, Len(Concat) - Len(myDelimiter))

End If End Function

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (3062) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: