Trong quá trình xử lý dữ liệu trên Excel, chắc hẳn bạn đã quen thuộc với các kỹ thuật tách chuỗi họ tên hay địa chỉ bằng hàm SUBSTITUTE hoặc các công cụ có sẵn. Tuy nhiên, ở chiều ngược lại, việc ghép chuỗi – đặc biệt là ghép chuỗi thỏa mãn một điều kiện cụ thể – thường phức tạp hơn nhiều. Trước đây, chúng ta thường phải nhờ đến các hàm như CONCAT, cột phụ hoặc thậm chí viết mã VBA (UDF).
Sự xuất hiện của hàm TEXTJOIN trong các phiên bản Office 365 và Excel 2019 đã thay đổi hoàn toàn cuộc chơi. Bài viết này của “Thủ Thuật” sẽ hướng dẫn bạn cách sử dụng hàm TEXTJOIN kết hợp với hàm IF để giải quyết bài toán nối chuỗi có điều kiện một cách chuyên nghiệp và nhanh chóng.
Bài toán thực tế: Ghép chuỗi theo nhóm
Để hiểu rõ sức mạnh của hàm này, chúng ta hãy xem xét một ví dụ cụ thể dưới đây.
Dữ liệu mẫu: Chúng ta có một bảng danh sách các Thành phố (Cột B) tương ứng với từng Quốc gia (Cột A).
Bảng dữ liệu mẫu bao gồm cột Quốc gia và Thành phố cần xử lý
Yêu cầu: Hãy liệt kê tất cả các thành phố thuộc cùng một quốc gia vào một ô duy nhất, ngăn cách nhau bởi dấu phẩy.
Nếu sử dụng các phương pháp thủ công hoặc hàm CONCATENATE cũ, bạn sẽ tốn rất nhiều thời gian. Tuy nhiên, với TEXTJOIN, công thức trở nên cực kỳ gọn gàng.
Công thức kết hợp TEXTJOIN và IF
Giải pháp tối ưu nhất cho bài toán này là lồng ghép hàm IF vào bên trong hàm TEXTJOIN. Công thức mảng được sử dụng như sau:
{=TEXTJOIN(“, “, TRUE, IF($A$2:$A$16=$E2, $B$2:$B$16, “”))}
Lưu ý quan trọng về thao tác:
- Với Office 365: Bạn chỉ cần nhấn Enter. Excel sẽ tự động nhận diện đây là công thức mảng động (Dynamic Array).
- Với Excel 2019 hoặc các bản cũ hơn (có hỗ trợ TEXTJOIN): Bạn bắt buộc phải nhấn tổ hợp phím Ctrl + Shift + Enter để kết thúc lệnh. Khi đó, công thức sẽ được bao bởi dấu ngoặc nhọn
{}.
Sau khi nhập công thức cho ô đầu tiên, bạn chỉ cần kéo (fill) công thức xuống các ô còn lại để nhận kết quả:
Ảnh động minh họa thao tác kéo công thức và kết quả hiển thị
Kết quả hiển thị chính xác các thành phố được gom nhóm theo quốc gia:
Kết quả sau khi áp dụng hàm TEXTJOIN có điều kiện
Phân tích chuyên sâu cơ chế hoạt động
Để áp dụng linh hoạt cho các trường hợp khác, bạn cần hiểu rõ bản chất kỹ thuật của sự kết hợp này.
Cấu trúc hàm TEXTJOIN
Cú pháp chuẩn:=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)
- delimiter (Dấu phân cách): Ký tự dùng để ngăn cách các chuỗi (ví dụ: dấu phẩy “, “, dấu gạch ngang “-“). Phải đặt trong dấu ngoặc kép.
- ignore_empty (Bỏ qua ô trống):
- TRUE: Bỏ qua các ô rỗng, không ghép vào kết quả.
- FALSE: Bao gồm cả các ô rỗng.
- text1, text2…: Các chuỗi văn bản hoặc mảng tham chiếu cần ghép.
Cơ chế xử lý mảng của hàm IF lồng ghép
Điểm mấu chốt nằm ở tham số thứ 3 (text1), nơi ta lồng hàm IF:IF($A$2:$A$16=$E2, $B$2:$B$16, "")
Quy trình xử lý của Excel diễn ra như sau:
- Kiểm tra điều kiện: Excel sẽ quét vùng
$A$2:$A$16. Với mỗi ô, nó so sánh với giá trị tại$E2(ví dụ: “Indonesia”). - Tạo mảng kết quả:
- Nếu ĐÚNG (Trùng khớp quốc gia): Trả về tên thành phố tương ứng ở cột B.
- Nếu SAI: Trả về chuỗi rỗng
"".
Sử dụng chức năng Evaluate Formula (Kiểm tra công thức), ta có thể thấy rõ quá trình này:
Đầu tiên, Excel xét giá trị “Indonesia” so với mảng dữ liệu:
Quá trình xét từng giá trị trong mảng điều kiện với Indonesia
Mảng điều kiện được chuyển đổi thành các giá trị TRUE/FALSE:
Mảng điều kiện được chuyển đổi thành TRUE và FALSE
Sau đó, hàm IF trả về mảng chứa tên thành phố (nơi có TRUE) và chuỗi rỗng (nơi có FALSE):
Hàm IF trả về mảng bao gồm tên thành phố và các giá trị rỗng
Cuối cùng, hàm TEXTJOIN với tham số ignore_empty = TRUE sẽ loại bỏ toàn bộ các chuỗi rỗng "" và chỉ nối các tên thành phố lại với nhau bằng dấu phẩy.
Kết quả cuối cùng sau khi TEXTJOIN loại bỏ giá trị rỗng
Một số lưu ý kỹ thuật
Tại sao tham số “ignore_empty” lại quan trọng?
Trong công thức trên, chúng ta thiết lập tham số thứ 2 là TRUE. Điều này cực kỳ quan trọng. Vì hàm IF của chúng ta trả về một mảng bao gồm cả tên thành phố và rất nhiều chuỗi rỗng (của các quốc gia khác).
Nếu bạn vô tình đặt là FALSE, Excel sẽ ghép cả những khoảng trắng này vào, dẫn đến kết quả xuất hiện hàng loạt dấu phẩy thừa như hình dưới:
Lỗi hiển thị nhiều dấu phẩy khi đặt tham số ignore_empty là FALSE
Yêu cầu phiên bản
Như đã đề cập, hàm TEXTJOIN chỉ khả dụng trên:
- Excel trong gói Office 365 (Microsoft 365).
- Excel 2019 hoặc mới hơn.
- Excel trên nền tảng Web (Excel Online).
Nếu bạn đang sử dụng Excel 2016, 2013 hoặc cũ hơn, hàm này sẽ báo lỗi #NAME?. Trong trường hợp đó, bạn sẽ cần sử dụng VBA (User Defined Function) để tạo hàm tự tạo có chức năng tương tự.
Kết luận
Việc kết hợp TEXTJOIN và IF là một kỹ thuật hiện đại, giúp tối ưu hóa quy trình xử lý dữ liệu dạng văn bản trong Excel. Nó thay thế hoàn toàn các phương pháp thủ công phức tạp trước đây, giúp file Excel của bạn nhẹ hơn và công thức dễ quản lý hơn.
Hy vọng thủ thuật này sẽ giúp bạn nâng cao hiệu suất làm việc. Nếu máy tính của bạn chưa có hàm này, hãy cân nhắc nâng cấp lên phiên bản Office mới nhất để tận dụng những tính năng mạnh mẽ mà Microsoft cung cấp.
Tham khảo thêm:
- Cách dùng hàm ghép chuỗi, nối chuỗi theo ô, vùng hoặc theo điều kiện.
- So sánh hiệu năng giữa hàm CONCAT và TEXTJOIN trong xử lý dữ liệu lớn.











Discussion about this post