Hàm nối chuỗi trong Excel: &, CONCAT, TEXTJOIN có điều kiện
Cách nối chuỗi trong Excel bằng dấu &, hàm CONCATENATE, CONCAT, TEXTJOIN có và không có điều kiện, nối kèm ngày tháng, số tiền bằng TEXT và xuống dòng.
Cách nối chuỗi nhanh nhất trong Excel là dùng dấu &: =A2&" "&B2 ghép họ và tên có dấu cách ở giữa. Khi cần nối cả vùng ô hoặc nối có dấu phân cách, dùng CONCAT hoặc TEXTJOIN (Excel 2019 trở lên, Microsoft 365, Google Sheets).
Ba cách nối chuỗi và khác biệt
| Cách | Cú pháp | Ưu / nhược điểm |
|---|---|---|
Dấu & | =A2&" "&B2 | Có ở mọi phiên bản, linh hoạt; dài dòng khi nối nhiều ô |
CONCATENATE | =CONCATENATE(A2," ",B2) | Hàm cũ, vẫn chạy; không nhận vùng ô như A2:D2 |
CONCAT | =CONCAT(A2:D2) | Nhận vùng ô; không tự thêm dấu phân cách |
TEXTJOIN | =TEXTJOIN(", ",TRUE,A2:D2) | Có dấu phân cách, tự bỏ ô trống; mạnh nhất |
Cú pháp TEXTJOIN
=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)
| Đối số | Ý nghĩa |
|---|---|
delimiter | Dấu chèn giữa các phần, ví dụ ", ", " - " |
ignore_empty | TRUE: bỏ qua ô trống (không sinh dấu phẩy thừa); FALSE: giữ |
text1, ... | Các ô, vùng hoặc chuỗi cần nối |
Máy đặt vùng Việt Nam dùng ;: =TEXTJOIN(", ";TRUE;A2:D2).
Ví dụ thực tế
1. Ghép họ tên đầy đủ
=TRIM(A2&" "&B2&" "&C2)
TRIM bỏ dấu cách thừa nếu có người không có tên đệm. Muốn làm ngược lại (tách họ tên), xem hàm lấy ký tự.
2. Ghép địa chỉ, bỏ qua phần trống
=TEXTJOIN(", ", TRUE, D2:G2)
“Số 12 Lê Lợi”, (trống), “Phường Bến Thành”, “TP. Hồ Chí Minh” → Số 12 Lê Lợi, Phường Bến Thành, TP. Hồ Chí Minh, không có “, ,” thừa.
3. TEXTJOIN có điều kiện
Liệt kê tên tất cả nhân viên phòng Kế toán trong một ô (cột A tên, cột C phòng ban):
=TEXTJOIN(", ", TRUE, IF(C2:C100="Kế toán", A2:A100, ""))
Trên Microsoft 365 nhấn Enter là chạy. Trên Excel 2019, công thức mảng này phải kết thúc bằng Ctrl + Shift + Enter. Microsoft 365 còn có cách gọn hơn: =TEXTJOIN(", ", TRUE, FILTER(A2:A100, C2:C100="Kế toán")), xem hàm FILTER, UNIQUE, SORT.
Nối kèm ngày tháng và số tiền: dùng TEXT
Nối trực tiếp ô ngày sẽ ra con số lạ, ví dụ ="Ngày ký: "&B2 cho “Ngày ký: 46322”, vì Excel lưu ngày dưới dạng số. Bọc ô bằng hàm TEXT để giữ định dạng:
="Ngày ký: "&TEXT(B2, "dd/mm/yyyy")
="Tổng tiền: "&TEXT(E2, "#,##0")&" đồng"
Kết quả: “Ngày ký: 27/10/2026”, “Tổng tiền: 12,500,000 đồng”.
"#.##0"; mã ngày cũng có thể khác trên máy cài ngôn ngữ khác. Hãy thử trên máy của bạn và xem thêm hàm TEXT, VALUE.Xuống dòng khi nối chuỗi
CHAR(10) là ký tự xuống dòng trên Windows:
=A2&CHAR(10)&B2&CHAR(10)&C2
=TEXTJOIN(CHAR(10), TRUE, A2:C2)
Sau đó bật Home → Wrap Text cho ô kết quả, nếu không các phần vẫn nằm trên một dòng. Gõ xuống dòng bằng tay trong ô thì dùng Alt + Enter, xem cách xuống dòng trong ô Excel.
Lỗi hay gặp
- Thiếu ngoặc kép quanh chữ hoặc dấu cách:
=A2& &B2báo lỗi; phải là" ". #NAME?với CONCAT, TEXTJOIN: máy dùng Excel 2016 trở về trước, hãy dùng&.#VALUE!với TEXTJOIN: kết quả vượt 32.767 ký tự, giới hạn của một ô.- Kết quả nối là văn bản: muốn giữ giá trị cố định, sao chép rồi Paste Special → Values.
Google Sheets
Google Sheets có &, CONCATENATE (nhận được cả vùng), CONCAT (chỉ nối 2 giá trị) và TEXTJOIN. Công thức TEXTJOIN có điều kiện chạy được khi bọc trong ARRAYFORMULA hoặc dùng FILTER như trên.