Khóa học
Hàm CONCAT() trong Excel cho phép bạn nối văn bản, số hoặc nội dung ô thành một ô duy nhất, giúp dọn dẹp dữ liệu và giảm nhập liệu thủ công. Như bạn sẽ thấy, nó đặc biệt hữu ích khi bạn ghép họ tên, địa chỉ hoặc các nhãn tuỳ chỉnh nào đó.
Hãy cùng đi qua những điều căn bản của hàm, xem cách nó hoạt động và so sánh với các công cụ liên quan trong Excel. Gợi ý: Đây là bản thay thế cho hàm CONCATENATE() đã lỗi thời hơn, nhưng cũng đang bị lu mờ bởi một hàm linh hoạt hơn gọi là TEXTJOIN(), mà tôi cũng có một bài viết riêng.
Hiểu mục đích và những điều cơ bản của CONCAT()
Sẽ hữu ích nếu trước hết làm rõ chính xác CONCAT() làm gì và khi nào bạn nên dùng nó.
CONCAT(), như bạn có thể đã biết, là viết tắt của “concatenate”, nghĩa là nối lại với nhau như các mắt xích. Trong Excel, điều này có nghĩa là kết hợp nội dung của hai hoặc nhiều ô (cũng như các giá trị) thành một. Ví dụ, bạn có họ và tên ở hai cột riêng, nhưng bạn muốn gộp cả hai vào một cột cho danh sách gửi thư.
Như tôi đã đề cập ở phần mở đầu, đây là bản thay thế hiện đại cho hàm CONCATENATE() cũ. CONCAT() tốt hơn CONCATENATE() vì ngắn hơn khi gõ và, quan trọng hơn, nó linh hoạt hơn và cho phép bạn gộp cả phạm vi lẫn các ô riêng lẻ.
=CONCAT(text1, [text2], ...)
Mỗi đối số là một tham chiếu ô, phạm vi hoặc giá trị văn bản bạn muốn kết hợp. text1 là bắt buộc, còn text2 và các mục bổ sung là tuỳ chọn, vì vậy nó được đặt trong ngoặc vuông.
CONCAT() trong bảng tính hằng ngày
Giờ khi đã biết CONCAT() làm gì, hãy xem nó xử lý các tình huống phổ biến như thế nào.
Gộp họ và tên vào một ô
Giả sử bạn quản lý danh bạ với tên ở cột A và họ ở cột B. Đây có lẽ là trường hợp dùng phổ biến nhất. Để gộp chúng vào một ô (với một khoảng trắng ở giữa), bạn dùng:
=CONCAT(A2, " ", B2)

Công thức này nối nội dung ô A2, một ký tự khoảng trắng và nội dung ô B2. Sao chép công thức xuống cột để tạo danh sách đầy đủ. Bạn cũng có thể ngăn cách bằng dấu phẩy như sau: =CONCAT(A2, ",", B2)
Gộp các thành phần địa chỉ
Mỗi nơi có cách ghi địa chỉ khác nhau nhưng gần như luôn trải trên vài cột, như số nhà, đường, thành phố. Với CONCAT(), bạn có thể gộp chúng cho nhãn gửi thư, hoặc đơn giản là để lưu trữ gọn gàng hơn.
=CONCAT(A2, " ", B2, ", ", C2)

Nối một phạm vi ô
Một lợi thế của CONCAT() so với CONCATENATE() cũ là khả năng nối cả phạm vi. Tôi muốn minh hoạ điều này vì nó cho thấy sức mạnh của CONCAT() so với CONCATENATE(). Ví dụ, để gộp các giá trị ở ô từ A2 đến E2, dùng:
=CONCAT(A2:E2)

Excel sẽ gộp nội dung theo thứ tự, mặc định không có ký tự ngăn cách. Trong trường hợp này, trông hơi lộn xộn vì các mục khác nhau dính liền nhau. Vì vậy, tôi đang vừa cho thấy điểm mạnh của CONCAT() so với CONCATENATE() (hàm sau hoàn toàn không hoạt động ở đây) vừa chỉ ra điểm yếu của nó so với TEXTJOIN(), hàm có thể dễ dàng thêm khoảng trắng — tôi sẽ nói thêm về hàm đó ở phần sau.
Hạn chế của CONCAT()
Giờ đây, cần đề cập đến một số điểm lạ và hạn chế của CONCAT(). Tôi muốn giúp bạn tránh các khó chịu thường gặp và đưa ra quyết định tốt hơn về thời điểm dùng hàm này.
Thứ nhất, CONCAT() không tự động thêm ký tự ngăn cách (như khoảng trắng hoặc dấu phẩy) giữa các mục hay giá trị ô. Nếu dữ liệu của bạn đến từ nhiều cột và bạn muốn kết quả dễ đọc, bạn cần tự chèn ký tự ngăn cách như trong các ví dụ tôi đã trình bày.
Thứ hai, CONCAT() bỏ qua các ô trống mà không cảnh báo. Nếu bạn cố gộp một phạm vi có một số ô trống, kết quả có thể trông kỳ lạ, tức là các từ hoặc giá trị có thể dính liền nhau.
Ngoài ra, CONCAT() không hỗ trợ chèn dấu phân cách xuyên suốt phạm vi. Ý tôi là, chẳng hạn, nếu bạn cố gộp A2:E2 và muốn chèn dấu phẩy giữa mỗi giá trị, chỉ riêng CONCAT() sẽ không xử lý được. Đây giống như kết quả ở ví dụ trái cây vừa rồi, nơi apple, banana và các mục khác dính liền nhau.
Cuối cùng nhưng không kém phần quan trọng, CONCAT() chỉ tạo ra kết quả dạng văn bản, ngay cả khi bạn bao gồm số. Nếu bạn cần đầu ra dạng số, đây không phải là hàm phù hợp.
CONCAT() so với TEXTJOIN() và CONCATENATE()
Tôi đã vài lần nhắc đến các hàm Excel khác như TEXTJOIN() và CONCATENATE(). Hãy làm rõ vai trò của chúng.
Làm việc với TEXTJOIN() để dùng ký tự ngăn cách tuỳ chỉnh
TEXTJOIN() là giải pháp khi bạn muốn gộp các giá trị và tự động chèn một dấu phân cách (như dấu phẩy hoặc khoảng trắng) giữa các mục, và điều này hoạt động ngay cả khi kết hợp các phạm vi. Cú pháp như sau:
Ví dụ, để nối tất cả giá trị trong A2:E2, ngăn cách bằng dấu phẩy và bỏ qua ô trống, bạn có thể dùng:
=TEXTJOIN(", ", TRUE, A2:E2)

Như bạn thấy, TEXTJOIN() rất phù hợp cho danh sách, địa chỉ, hoặc bất kỳ tình huống nào cần dấu ngăn cách nhất quán, và phạm vi dữ liệu quá dài để dùng CONCAT() một cách thực tế. TEXTJOIN() thậm chí xử lý gọn gàng ô trống tôi để trong ví dụ.
Bạn có thể thấy CONCAT() sẽ rườm rà thế nào trong tình huống kiểu này:
=CONCAT(A1, ", ", B1, ", ", C1, ", ", D1, ", ", E1)
Tìm hiểu CONCATENATE() (và vì sao nó lỗi thời)
CONCATENATE() là hàm nguyên thuỷ của Excel để nối văn bản. Nhược điểm chính là nó không chấp nhận phạm vi. Mỗi ô hoặc giá trị phải được liệt kê riêng lẻ.
Nói cách khác, công thức này hoạt động:
=CONCAT(A1:E1)
Nhưng công thức này trả về lỗi:
=CONCATENATE(A1:E1) # this doesn’t work
Trong bất kỳ quy trình hiện đại nào, bạn nên dùng CONCAT() hoặc TEXTJOIN(). Tóm lại:
-
Dùng
CONCAT()để gộp đơn giản các ô hoặc phạm vi khi bạn không cần ký tự ngăn cách tuỳ chỉnh. -
Dùng
TEXTJOIN()để gộp kèm dấu phân cách tự động và có thể tuỳ chỉnh. -
Tránh dùng
CONCATENATE()trong tệp mới; nó chỉ còn để tương thích.
Mẹo và thủ thuật
Giờ khi bạn đã hiểu khi nào dùng CONCAT(), hãy điểm qua vài mẹo thực tế giúp bạn sử dụng hàm hiệu quả trong công việc hằng ngày.
Kết hợp hằng số và định dạng
Bạn có thể kết hợp tham chiếu ô với văn bản hoặc ký hiệu cố định. Ví dụ, để thêm "ID-" trước số nhân viên ở A2:
=CONCAT("ID-", A2)
Kỹ thuật này giúp tiêu chuẩn hoá các định dạng hoặc nhãn trong trang tính của bạn.
Xử lý số và ngày tháng
CONCAT() coi số và ngày tháng là văn bản. Nếu bạn muốn kiểm soát định dạng, hãy dùng hàm TEXT() trong công thức. Chẳng hạn, để gộp tên và một ngày đã định dạng:
=CONCAT(A2, " hired on ", TEXT(B2, "mmmm d, yyyy"))

Điều này đảm bảo đầu ra khớp với phong cách bạn mong muốn, dù bạn đang chuẩn bị báo cáo hay trộn thư.
Kết luận
Như chúng ta đã tìm hiểu, hàm CONCAT() mang đến cách đơn giản để gộp văn bản, số và phạm vi trong Excel, giúp tiết kiệm thời gian cho bất kỳ ai quản lý danh sách, báo cáo hoặc dọn dẹp dữ liệu định kỳ — vốn là một phần trong mô tả công việc của bất kỳ chuyên viên dữ liệu, nhà phân tích dữ liệu hay nhà khoa học dữ liệu nào.
Tôi đã nhắc đến các hàm khác trong bài viết. Để luôn cập nhật, hãy khám phá khoá học Advanced Excel Functions của chúng tôi và học về nhiều điều thú vị trong Excel, như khả năng mảng động và các phương pháp tự động hoá.

Tôi là một cây bút và biên tập viên về khoa học dữ liệu, đã có bài đóng góp cho các nghiên cứu đăng trên tạp chí khoa học. Tôi đặc biệt quan tâm đến đại số tuyến tính, thống kê, R và các chủ đề tương tự. Tôi cũng chơi cờ vua khá thường xuyên!
Câu hỏi thường gặp
Vì sao CONCAT() không tự chèn khoảng trắng hoặc dấu phẩy giữa các mục?
Hàm CONCAT() trong Excel không tự thêm bất kỳ ký tự ngăn cách nào — như khoảng trắng, dấu phẩy hoặc dấu gạch chéo — giữa các giá trị theo mặc định. Nếu bạn muốn kết quả dễ đọc, bạn cần tự thêm ký tự ngăn cách trong công thức. Ví dụ, để chèn một khoảng trắng giữa tên và họ, bạn sẽ viết: =CONCAT(A2, " ", B2)
Điều gì xảy ra khi CONCAT() gặp ô trống?
Khi CONCAT() gộp một phạm vi hoặc danh sách ô, nó lặng lẽ bỏ qua các ô trống. Điều này đôi khi dẫn đến kết quả trông kỳ lạ, nơi các giá trị có vẻ như “dính liền nhau.” Nếu điều này là vấn đề, hãy cân nhắc dùng logic có điều kiện hoặc hàm TEXTJOIN(), vốn cho bạn nhiều kiểm soát hơn với ô trống.
Tôi có thể dùng CONCAT() để gộp một phạm vi với dấu phẩy giữa các giá trị không?
No, CONCAT() một mình không thể chèn ký tự ngăn cách giữa các mục trong một phạm vi như A2:E2. Nếu bạn muốn có dấu phẩy (hoặc bất kỳ dấu phân cách nào) giữa các giá trị đó, hãy dùng TEXTJOIN() thay thế. Ví dụ: =TEXTJOIN(", ", TRUE, A2:E2) Công thức này nối phạm vi và tự động chèn dấu phẩy, bỏ qua các ô trống nếu bạn đặt đối số thứ hai là TRUE.
Vì sao CONCAT() trả về văn bản ngay cả khi tôi gộp số?
Hàm CONCAT() luôn trả về chuỗi văn bản, bất kể bạn có bao gồm số hay không. Nếu bạn cần giữ định dạng số hoặc kiểm soát cách hiển thị ngày/tháng/năm hoặc số, bạn sẽ cần bọc chúng trong hàm TEXT(). Ví dụ: =CONCAT("Hired on ", TEXT(B2, "mm/dd/yyyy"))
Khi nào tôi nên dùng CONCAT(), TEXTJOIN() hoặc CONCATENATE()?
- Dùng
**CONCAT()**cho việc gộp đơn giản các ô hoặc phạm vi khi bạn không cần dấu ngăn cách tự động. -
Dùng
**TEXTJOIN()**khi bạn muốn chèn dấu phân cách giữa các mục (như dấu phẩy hoặc khoảng trắng) và bỏ qua ô trống. -
Tránh dùng
**CONCATENATE()**trong sổ làm việc mới — hàm này đã được thay thế bởiCONCAT()và không hỗ trợ phạm vi.
