Cách Concatenate Trong Excel Với Dấu Phân Cám: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao

Trong môi trường làm việc văn phòng hiện đại, Excel luôn là công cụ không thể thiếu để xử lý dữ liệu, thực hiện các phép tính, và tạo ra các báo cáo chuyên nghiệp. Một trong những thao tác thường gặp nhưng lại vô cùng hữu ích là ghép (concatenate) các giá trị trong các ô lại với nhau, đặc biệt là khi cần chèn dấu phân cách (comma, “,”) giữa các phần tử. Việc này giúp bạn tạo danh sách, địa chỉ email, mô tả sản phẩm, hoặc bất kỳ chuỗi ký tự nào theo định dạng mong muốn chỉ trong vài giây.

Bài viết dưới đây sẽ cung cấp hướng dẫn chi tiết, đầy đủ và thực tế về cách thực hiện việc concatenate trong Excel với dấu phẩy, bao gồm:

  1. Giới thiệu tổng quan về hàm CONCATENATE và các hàm thay thế mới.
  2. Cách sử dụng hàm CONCATENATE, & và TEXTJOIN để ghép chuỗi có dấu phẩy.
  3. Các ví dụ thực tế trong công việc hàng ngày.
  4. Xử lý các trường hợp đặc biệt: bỏ qua ô trống, loại bỏ dấu phẩy thừa, ghép nhiều cột, ghép dữ liệu từ nhiều sheet.
  5. Tối ưu hoá công thức bằng VBA (Macro) cho khối lượng dữ liệu lớn.
  6. Những lỗi thường gặp và cách khắc phục.
  7. Mẹo và thủ thuật nâng cao để tăng tốc công việc.

Lưu ý: Bài viết được viết bằng tiếng Việt, hướng tới người dùng ở mọi cấp độ – từ người mới bắt đầu tới các chuyên gia phân tích dữ liệu. Các ví dụ sẽ sử dụng các phiên bản Excel phổ biến (Excel 2026, 2026, Office 365) và cung cấp hướng dẫn cho cả Google Sheets nếu bạn làm việc trên môi trường đám mây.

1. Tổng Quan Về CONCATENATE và Các Hàm Thay Thế

1.1. Hàm CONCATENATE (cũ)

Trước khi Excel 2026 ra mắt, hàm CONCATENATE là cách duy nhất để ghép các chuỗi lại với nhau. Cú pháp đơn giản:

=CONCATENATE(text1, text2, …)
  • text1, text2, … là các chuỗi hoặc tham chiếu ô cần ghép.
  • Không có giới hạn số lượng đối số (tối đa 255 đối số).

Ví dụ:

ABC
JohnDoe=CONCATENATE(A2, ” “, B2) → “John Doe”

1.2. Dấu & – Cách Viết Ngắn Gọn

Thay vì dùng hàm CONCATENATE, bạn có thể dùng toán tử & để ghép chuỗi:

=A2 & " " & B2

Cú pháp ngắn gọn, dễ đọc và linh hoạt hơn, đặc biệt khi bạn cần chèn dấu phân cách.

1.3. Hàm CONCAT (Excel 2026+)

Excel 2026 giới thiệu hàm CONCAT để thay thế CONCATENATE. Cú pháp:

=CONCAT(text1, text2, …)

Giống như CONCATENATE nhưng hỗ trợ đối tượng mảng (array) nên bạn có thể ghép toàn bộ một cột mà không cần lặp lại từng ô.

1.4. Hàm TEXTJOIN – Giải Pháp Hoàn Hảo Cho Dấu Phân Cách

TEXTJOIN là hàm mạnh mẽ nhất hiện nay để ghép chuỗi có dấu phân cách, đồng thời có tùy chọn bỏ qua ô trống. Cú pháp:

=TEXTJOIN(delimiter, ignore_empty, text1, text2, …)
  • delimiter: Dấu phân cách (ví dụ: “, ”).
  • ignore_empty: TRUE để bỏ qua ô trống, FALSE để giữ lại.
  • text1, text2,…: Các chuỗi hoặc phạm vi cần ghép.

Ví dụ:

=TEXTJOIN(", ", TRUE, A2:C2)

Nếu A2 = “Apple”, B2 trống, C2 = “Banana”, kết quả sẽ là “Apple, Banana” (không có dấu phẩy thừa).

2. CÁCH SỬ DỤNG CÁC HÀM ĐỂ CONCATENATE VỚI DẤU PHÂN CÁM

2.1. Dùng CONCATENATE + Dấu Phẩy

=CONCATENATE(A2, ", ", B2, ", ", C2)

Nhược điểm: Phải liệt kê từng ô, không tự động bỏ qua ô trống.

2.2. Dùng & + Dấu Phẩy

=A2 & ", " & B2 & ", " & C2

Cũng tương tự CONCATENATE, nhanh hơn khi có ít ô.

2.3. Dùng TEXTJOIN – Giải Pháp Tối Ưu

=TEXTJOIN(", ", TRUE, A2:C2)
  • TRUE → bỏ qua ô trống.
  • A2:C2 → phạm vi ô cần ghép.

Nếu bạn muốn không bỏ qua ô trống (giữ dấu phẩy thừa), dùng FALSE:

=TEXTJOIN(", ", FALSE, A2:C2)

2.4. Ghép Nhiều Cột, Nhiều Dòng

Giả sử bạn có dữ liệu ở cột A, B, C và muốn tạo một chuỗi duy nhất cho mỗi hàng:

=TEXTJOIN(", ", TRUE, A2:C2)

Sau đó kéo công thức xuống để áp dụng cho các hàng khác.

Nếu muốn gộp toàn bộ cột A, có thể dùng:

=TEXTJOIN(", ", TRUE, A:A)

Lưu ý: Khi ghép toàn bộ cột, tránh dùng tới hàng cuối cùng (ví dụ A:A) nếu có hàng trống quá nhiều, vì Excel sẽ xử lý toàn bộ 1.048.576 ô, gây chậm. Thay vào đó, dùng phạm vi thực tế như A2:A5000.

2.5. Ghép Dữ Liệu Từ Nhiều Sheet

Giả sử Sheet1 có cột A, Sheet2 có cột B, bạn muốn tạo danh sách chung:

=TEXTJOIN(", ", TRUE, Sheet1!A2:A100, Sheet2!B2:B100)

Bạn có thể thêm bao nhiêu phạm vi tùy ý, mỗi phạm vi cách nhau bằng dấu phẩy trong hàm.

3. ỨNG DỤNG THỰC TẾ TRONG CÔNG VIỆC

3.1. Tạo Danh Sách Email Từ Các Cột Họ, Tên, Domain

A (Họ)B (Tên)C (Domain)
NguyenAnhexample.com
TrầnBìnhexample.org

Công thức:

=TEXTJOIN("@", FALSE, A2, B2) & "." & C2

Kết quả: Nguyen.Anh@example.com, Trần.Bình@example.org.

3.2. Ghép Địa Chỉ Giao Hàng

Concatenate In Excel With Comma
Concatenate In Excel With Comma
A (Số nhà)B (Đường)C (Quận)D (Thành phố)
123Lê Lợi1Hà Nội
45Nguyễn Trãi3TP.HCM

Công thức:

=TEXTJOIN(", ", TRUE, A2, B2, C2, D2)

Kết quả: 123, Lê Lợi, 1, Hà Nội.

3.3. Tạo Mô Tả Sản Phẩm Từ Nhiều Thuộc Tính

A (Tên)B (Màu)C (Kích thước)D (Giá)
ÁoĐỏL250,000
QuầnXanhM180,000

Công thức:

=TEXTJOIN(" - ", TRUE, A2, B2, C2, "Giá: " & D2 & " VND")

Kết quả: Áo - Đỏ - L - Giá: 250,000 VND.

4. XỬ LÝ TRƯỜNG HỢP ĐẶC BIỆT

4.1. Bỏ Qua Ô Trống (IGNORE_EMPTY)

TEXTJOIN cho phép bỏ qua ô trống bằng cách đặt tham số TRUE. Nếu bạn dùng CONCATENATE hoặc &, bạn cần điều kiện IF:

=IF(A2="", "", A2 & ", ") & IF(B2="", "", B2 & ", ") & IF(C2="", "", C2)

Nhưng công thức này dễ gây lỗi và khó bảo trì.

4.2. Loại Bỏ Dấu Phẩy Thừa Ở Đầu Hoặc Cuối

Khi dữ liệu có ô trống và bạn không dùng ignore_empty, có thể xuất hiện dấu phẩy thừa. Cách xử lý:

=TRIM(MID(SUBSTITUTE(TEXTJOIN(", ", FALSE, A2:C2), ", ", REPT(" ", 100)), 100, 1000))

Tuy nhiên, cách này phức tạp. Giải pháp tốt nhất là luôn dùng TEXTJOIN với TRUE.

4.3. Ghép Nhiều Cột Không Kế Tiếp

Nếu muốn ghép cột A và C (bỏ qua B), dùng:

=TEXTJOIN(", ", TRUE, CHOOSE({1,2}, A2:A10, C2:C10))

Hoặc dùng hàm FILTER (Office 365) để lọc:

=TEXTJOIN(", ", TRUE, FILTER(A2:C10, MOD(COLUMN(A2:C10),2)=1))

4.4. Ghép Dữ Liệu Động Với OFFSET

Nếu bạn có danh sách thay đổi kích thước, dùng OFFSET để tạo phạm vi động:

=TEXTJOIN(", ", TRUE, OFFSET(A2,0,0,COUNTA(A:A)-1,1))

4.5. Ghép Dữ Liệu Từ Bảng (Table)

Nếu dữ liệu được định dạng dưới dạng Table (Insert > Table), bạn có thể dùng structured references:

=TEXTJOIN(", ", TRUE, Table1Họ, Table1Tên)

Công thức sẽ tự cập nhật khi bảng mở rộng.

5. TỐI ƯU HÓA VỚI VBA (Macro) CHO DỮ LIỆU LỚN

Khi làm việc với hàng ngàn hay hàng triệu bản ghi, việc dùng công thức TEXTJOIN trên toàn cột có thể làm chậm workbook. Đối với trường hợp này, VBA là lựa chọn tốt hơn.

5.1. Macro Cơ Bản – Ghép Dòng Thành Chuỗi Với Dấu Phẩy

Sub ConcatenateWithComma() Dim ws As Worksheet Dim rng As Range, cell As Range Dim result As String Dim lastRow As Long Set ws = ThisWorkbook.Sheets("Sheet1") lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 'Giả sử dữ liệu ở cột A For Each cell In ws.Range("A2:A" & lastRow) If Len(cell.Value) > 0 Then result = result & cell.Value & ", " End If Next cell 'Xóa dấu phẩy cuối cùng If Len(result) > 0 Then result = Left(result, Len(result) - 2) ws.Range("B2").Value = result 'Kết quả ghi vào B2
End Sub

5.2. Macro Nâng Cao – Nối Nhiều Cột, Bỏ Qua Ô Trống

Sub ConcatenateMultiColumns() Dim ws As Worksheet Dim rng As Range, r As Long, c As Long Dim result As String Dim lastRow As Long, lastCol As Long Set ws = ThisWorkbook.Sheets("Data") lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column For r = 2 To lastRow result = "" For c = 1 To lastCol If Len(ws.Cells(r, c).Value) > 0 Then result = result & ws.Cells(r, c).Value & ", " End If Next c If Len(result) > 0 Then result = Left(result, Len(result) - 2) 'Bỏ dấu phẩy cuối End If ws.Cells(r, lastCol + 1).Value = result 'Ghi vào cột mới Next r
End Sub

Lưu ý: Khi chạy macro, luôn sao lưu file trước để tránh mất dữ liệu.

5.3. Tối Ưu Hóa Với Mảng (Array) – Nhanh Hơn 10 Lần

Sub FastConcatenate() Dim ws As Worksheet, outArr() As Variant Dim dataArr As Variant Dim r As Long, c As Long, lastRow As Long, lastCol As Long Dim tmp As String Set ws = ThisWorkbook.Sheets("Data") lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column dataArr = ws.Range(ws.Cells(2, 1), ws.Cells(lastRow, lastCol)).Value ReDim outArr(1 To UBound(dataArr, 1), 1 To 1) For r = 1 To UBound(dataArr, 1) tmp = "" For c = 1 To UBound(dataArr, 2) If Len(dataArr(r, c)) > 0 Then tmp = tmp & dataArr(r, c) & ", " End If Next c If Len(tmp) > 0 Then tmp = Left(tmp, Len(tmp) - 2) outArr(r, 1) = tmp Next r ws.Range("Z2").Resize(UBound(outArr, 1), 1).Value = outArr 'Ghi kết quả cột Z
End Sub

Với cách này, đọc và ghi dữ liệu chỉ diễn ra một lần, giảm thiểu thời gian xử lý.

6. LỖI THƯỜNG GẶP KHI CONCATENATE VỚI DẤU PHÂN CÁM VÀ CÁCH KHẮC PHỤC

LỗiNguyên nhânCách khắc phục
#VALUE!Tham chiếu tới ô chứa lỗi (ví dụ: #DIV/0!)Kiểm tra và xử lý lỗi bằng IFERROR hoặc IFNA.
Dấu phẩy thừa ở đầu/cuốiSử dụng CONCATENATE/& mà không bỏ qua ô trốngDùng TEXTJOIN với TRUE hoặc thêm điều kiện IF(LEN(A2)>0, A2 & ", ", "").
Công thức chậmÁp dụng TEXTJOIN trên toàn cột (A:A) với hàng triệu ôGiới hạn phạm vi, hoặc dùng VBA.
Kết quả trònCác ô chứa số và định dạng sốSử dụng TEXT để ép kiểu: TEXT(A2, "0.00").
Không nhận dạng dấu phẩy (đối với ngôn ngữ dùng dấu chấm)Cài đặt ngôn ngữ/định dạng hệ thốngThay dấu “,” bằng “;” trong công thức (ví dụ: TEXTJOIN("; ", TRUE, …) tùy locale).

Ví dụ sử dụng IFERROR:

=IFERROR(TEXTJOIN(", ", TRUE, A2:C2), "")

Nếu có lỗi trong bất kỳ ô nào, công thức trả về chuỗi rỗng thay vì lỗi.

7. MẸO VÀ THỦ THUẬT NÂNG CAO

  1. Sử dụng TRIM để loại bỏ khoảng trắng thừa
    excel =TRIM(TEXTJOIN(", ", TRUE, A2:C2))

  2. Ghép dữ liệu với ký tự đặc biệt (ví dụ: dấu ngoặc <>):
    excel =TEXTJOIN(", ", TRUE, "<" & A2 & ">", "<" & B2 & ">")

  3. Tạo danh sách dropdown tự động từ chuỗi đã ghép:

  4. Dùng Data Validation → List → nhập công thức =TEXTSPLIT(F2, ", ") (Excel 365) để tách lại thành danh sách.

  5. Xây dựng công thức đa ngôn ngữ: nếu môi trường sử dụng dấu chấm phẩy ; làm phân cách, thay , trong công thức bằng ;.
    excel =TEXTJOIN("; ", TRUE, A2:C2)

  6. Ghép dữ liệu trong Google Sheets: hàm tương đương là JOIN hoặc TEXTJOIN.
    gs =JOIN(", ", FILTER(A2:C2, LEN(A2:C2)>0))

  7. Sử dụng LET (Excel 365) để giảm tính toán lặp:
    excel =LET(rng, A2:C2, TEXTJOIN(", ", TRUE, rng))

  8. Đánh dấu các phần tử trùng lặp trước khi ghép:
    excel =TEXTJOIN(", ", TRUE, UNIQUE(FILTER(A2:A100, A2:A100<>"")))

  9. Ghép dữ liệu từ nhiều sheet dựa trên tiêu chí (ví dụ: chỉ ghép những ô có giá trị >0):
    excel =TEXTJOIN(", ", TRUE, IF(Sheet1!A2:A50>0, Sheet1!A2:A50, ""), IF(Sheet2!B2:B50>0, Sheet2!B2:B50, ""))

  10. Sử dụng LAMBDA để tạo hàm tùy chỉnh (Excel 365):
    excel =LAMBDA(rng, delim, TEXTJOIN(delim, TRUE, rng))
    Lưu lại dưới tên MyJoin, sau đó dùng: =MyJoin(A2:C2, ", ").

8. KẾT LUẬN

Việc concatenate trong Excel với dấu phẩy không chỉ là một thao tác đơn giản mà còn là công cụ mạnh mẽ giúp bạn tự động hoá quy trình xử lý dữ liệu, tạo báo cáo, và chuẩn hoá thông tin. Từ các hàm cơ bản như CONCATENATE và & cho tới TEXTJOIN hiện đại, và thậm chí là VBA cho khối lượng dữ liệu lớn, bạn luôn có giải pháp phù hợp.

Những điểm quan trọng cần nhớ:

  • Sử dụng TEXTJOIN khi có dấu phân cách và cần bỏ qua ô trống – đây là cách nhanh nhất và sạch sẽ nhất.
  • Tránh ghép toàn cột nếu không cần thiết; luôn giới hạn phạm vi để tối ưu hiệu suất.
  • Khi dữ liệu quá lớn, hãy cân nhắc dùng macro VBA để giảm thời gian tính toán.
  • Kiểm tra lỗi bằng IFERROR hoặc IFNA để tránh làm hỏng báo cáo.
  • Áp dụng các mẹo nâng cao như LET, LAMBDA, UNIQUE, FILTER để làm cho công thức ngắn gọn, mạnh mẽ và dễ bảo trì.

Hy vọng bài viết đã cung cấp cho bạn toàn bộ kiến thức cần thiết để thực hiện mọi yêu cầu ghép chuỗi có dấu phẩy trong Excel, bất kể quy mô hay độ phức tạp. Hãy thử áp dụng ngay vào công việc của mình và cảm nhận sự tiết kiệm thời gian cùng độ chính xác mà Excel mang lại. Chúc bạn thành công!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận