Có thể bạn quan tâm: Cách Sử Dụng Pivot Table Excel: Hướng Dẫn Từ Cơ Bản Đến Nâng Cao
1. Giới thiệu tổng quan về việc ghép nội dung 2 cột trong Excel
Trong môi trường làm việc hiện đại, Excel không chỉ là một công cụ tính toán số liệu mà còn là một nền tảng mạnh mẽ để xử lý dữ liệu văn bản. Một trong những nhu cầu phổ biến nhất của người dùng là ghép nội dung của hai (hoặc nhiều) cột lại với nhau để tạo ra một cột duy nhất chứa thông tin tổng hợp. Việc này có thể áp dụng trong nhiều trường hợp thực tiễn:
- Tạo danh sách khách hàng: ghép họ và tên, địa chỉ, số điện thoại…
- Kết hợp mã sản phẩm và mô tả: tạo ra một chuỗi duy nhất để xuất ra báo cáo.
- Hợp nhất dữ liệu từ các nguồn khác nhau: khi dữ liệu được nhập vào các cột riêng biệt và cần được gộp lại để tiện xử lý.
Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ các cách đơn giản nhất cho người mới bắt đầu, đến các kỹ thuật nâng cao dành cho những ai muốn tự động hoá, tối ưu hoá quy trình làm việc trong Excel.
Có thể bạn quan tâm: Cách Dùng Conditional Formatting Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Các phương pháp cơ bản để ghép nội dung 2 cột
2.1. Sử dụng dấu “&” (phép nối chuỗi)
Phép nối chuỗi bằng ký tự & là cách nhanh nhất và trực quan nhất. Cú pháp:
=Ô1 & Ô2
Ví dụ:
| A (Họ) | B (Tên) | C (Kết quả) |
|---|---|---|
| Nguyễn | Văn A | =A2 & ” ” & B2 → Nguyễn Văn A |
| Trần | Thị B | =A3 & ” ” & B3 → Trần Thị B |
Lưu ý: Để chèn dấu cách, dấu gạch ngang hoặc bất kỳ ký tự nào khác, bạn cần đặt chúng trong dấu ngoặc kép " " như trong ví dụ trên.
2.2. Hàm CONCAT (Excel 2026 trở lên)
Hàm CONCAT là phiên bản nâng cấp của hàm CONCATENATE (cũ) và cho phép nối nhiều ô cùng lúc. Cú pháp:
=CONCAT(text1, text2, …)
Ví dụ:
=CONCAT(A2, " ", B2)
2.3. Hàm TEXTJOIN (Excel 2026 trở lên)
Khi cần nối nhiều ô và muốn tự động bỏ qua các ô trống, TEXTJOIN là lựa chọn lý tưởng. Cú pháp:
=TEXTJOIN(delimiter, ignore_empty, text1, text2, …)
- delimiter: ký tự ngăn cách (ví dụ:
" "hoặc", "). - ignore_empty: TRUE để bỏ qua ô trống, FALSE để giữ lại.
Ví dụ:
=TEXTJOIN(" ", TRUE, A2, B2)
Nếu A2 trống, kết quả vẫn sẽ là “Tên” (không có khoảng trắng thừa).
2.4. Hàm CONCATENATE (đối với các phiên bản cũ)
Trước Excel 2026, hàm CONCATENATE là chuẩn. Cú pháp:
=CONCATENATE(text1, text2, …)
Ví dụ:
=CONCATENATE(A2, " ", B2)
Mặc dù vẫn hoạt động, Microsoft đã khuyến cáo người dùng chuyển sang CONCAT hoặc TEXTJOIN.
Có thể bạn quan tâm: Cách Cài Pass Cho Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
3. Xử lý các trường hợp phức tạp
3.1. Loại bỏ khoảng trắng thừa ở đầu/cuối chuỗi
Khi ghép dữ liệu, đặc biệt là từ các ô nhập tay, có thể xuất hiện khoảng trắng không mong muốn. Để làm sạch, sử dụng hàm TRIM:
=TRIM(A2) & " " & TRIM(B2)
Hoặc kết hợp với TEXTJOIN:
=TEXTJOIN(" ", TRUE, TRIM(A2), TRIM(B2))
3.2. Chuyển đổi chữ hoa/chữ thường
- UPPER: chuyển toàn bộ thành chữ hoa.
- LOWER: chuyển thành chữ thường.
- PROPER: viết hoa chữ cái đầu mỗi từ.
Ví dụ:
=PROPER(TRIM(A2) & " " & TRIM(B2))
3.3. Ghép nội dung 2 cột kèm theo dữ liệu từ cột khác
Giả sử bạn có 3 cột: Mã SP (A), Tên SP (B), Đơn vị (C) và muốn tạo một cột mô tả dạng “Mã SP – Tên SP (Đơn vị)”.
=CONCAT(A2, " – ", B2, " (", C2, ")")
Hoặc dùng TEXTJOIN:
=TEXTJOIN(" ", TRUE, A2, "–", B2, "(" & C2 & ")")
3.4. Ghép nội dung có điều kiện (IF)
Bạn muốn ghép Tên và Họ chỉ khi Tên không rỗng, ngược lại chỉ hiển thị Họ.
=IF(B2="","",A2 & " " & B2)
Hoặc sử dụng TEXTJOIN với ignore_empty = TRUE:
=TEXTJOIN(" ", TRUE, A2, B2)
4. Tự động hoá quy trình ghép cột bằng Power Query
Khi dữ liệu lớn, việc viết công thức trên từng ô có thể gây chậm và khó bảo trì. Power Query (được tích hợp trong Excel 2026 trở lên) cho phép thực hiện ghép cột một cách linh hoạt và có thể lưu lại như một bước chuyển đổi dữ liệu.
4.1. Bước khởi tạo Power Query

Có thể bạn quan tâm: Cách Lọc Độ Tuổi Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
- Chọn bất kỳ ô nào trong bảng dữ liệu.
- Vào Data → From Table/Range (hoặc Get & Transform Data).
- Power Query Editor mở ra.
4.2. Thực hiện ghép cột
- Chọn các cột muốn ghép (ví dụ: Họ và Tên).
- Click chuột phải → Merge Columns.
- Chọn Separator (dấu ngăn cách) – ví dụ: Space.
- Đặt tên cho cột mới (ví dụ: HọTên).
Sau khi hoàn thành, nhấn Close & Load để trả về Excel. Bây giờ mọi thay đổi trong nguồn dữ liệu sẽ tự động cập nhật khi bạn refresh Power Query.
4.3. Lợi ích của Power Query
- Tái sử dụng: Khi dữ liệu mới được thêm, các bước ghép sẽ tự động áp dụng.
- Hiệu suất: Xử lý dữ liệu hàng nghìn, hàng triệu bản ghi nhanh hơn so với công thức.
- Quản lý: Tất cả các bước chuyển đổi được lưu trong một script M, dễ dàng chia sẻ và tài liệu hoá.
5. Sử dụng VBA để ghép cột tự động
Đối với các nhà phát triển hoặc người dùng muốn tạo macro tùy chỉnh, VBA (Visual Basic for Applications) cung cấp khả năng ghép cột qua mã lệnh.
5.1. Mẫu macro ghép 2 cột
Sub GhepHaiCot() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Set ws = ThisWorkbook.Sheets("Sheet1") ' Thay tên sheet nếu cần lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Giả sử cột A có dữ liệu For i = 2 To lastRow ' Bắt đầu từ dòng 2 (giả sử có tiêu đề) ws.Cells(i, "C").Value = Trim(ws.Cells(i, "A").Value) & " " & Trim(ws.Cells(i, "B").Value) Next i MsgBox "Hoàn tất ghép nội dung 2 cột!", vbInformation
End Sub
- Giải thích: Vòng lặp duyệt từng hàng, ghép nội dung cột A và B (đã qua hàm
Trim) và ghi vào cột C. - Tùy biến: Thay
" "bằng dấu ngăn cách khác, hoặc thêm điều kiệnIfđể bỏ qua các ô rỗng.
5.2. Gán macro vào nút bấm
- Vào Developer → Insert → Button (Form Control).
- Vẽ nút trên sheet, chọn macro
GhepHaiCot. - Đặt tên cho nút (ví dụ: “Ghép Họ – Tên”).
Giờ khi người dùng nhấn nút, macro sẽ tự động thực hiện ghép mà không cần công thức.
6. Các lưu ý và lỗi thường gặp
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
| #VALUE! | Một trong các ô chứa lỗi (ví dụ: #N/A, #DIV/0!). | Kiểm tra và làm sạch dữ liệu, hoặc dùng hàm IFERROR để bỏ qua lỗi: =IFERROR(A2 & " " & B2, ""). |
| Khoảng trắng thừa | Dữ liệu nhập tay có dấu cách đầu/cuối. | Dùng TRIM trước khi ghép. |
| Kết quả không cập nhật | Sử dụng công thức cố định (ví dụ $A$2) hoặc không kéo công thức xuống hết. | Đảm bảo công thức là tương đối (A2, B2) và kéo xuống đủ dòng. |
| Ghép không đúng thứ tự | Sắp xếp dữ liệu sau khi ghép mà không cập nhật công thức. | Sử dụng Table (Ctrl+T) để công thức tự động mở rộng khi thêm dòng. |
| Không nhận diện ký tự ngăn cách trong TEXTJOIN | Đặt delimiter sai định dạng (ví dụ: không đặt trong dấu ngoặc kép). | Kiểm tra lại cú pháp: TEXTJOIN(",", TRUE, A2:B2). |
7. Thực hành: 5 Bài tập thực tế
Bài 1: Ghép địa chỉ khách hàng
| A (Số nhà) | B (Đường) | C (Quận) | D (Kết quả) |
|---|---|---|---|
| 123 | Lê Lợi | 1 | =TEXTJOIN(“, “, TRUE, A2, B2, C2) → 123, Lê Lợi, 1 |
Bài 2: Tạo mã nhân viên từ họ và số thứ tự
| A (Họ) | B (STT) | C (Mã NV) |
|---|---|---|
| Nguyễn | 001 | =UPPER(LEFT(TRIM(A2),2)) & “-” & TEXT(B2,”000″) → NG-001 |
Bài 3: Ghép mô tả sản phẩm (điều kiện)
| A (Tên SP) | B (Màu) | C (Kích thước) | D (Mô tả) |
|---|---|---|---|
| Áo | Đỏ | L | =IF(B2=””,””,A2 & ” (” & B2 & “, ” & C2 & “)”) → Áo (Đỏ, L) |
Bài 4: Sử dụng Power Query để ghép cột ngày tháng
- Dữ liệu: Ngày, Tháng, Năm.
- Power Query → Merge Columns → Separator / → Kết quả:
dd/mm/yyyy.
Bài 5: Macro VBA ghép nhiều cột thành một chuỗi JSON
Sub GhepJSON() Dim ws As Worksheet, lastRow As Long, i As Long, jsonStr As String Set ws = Sheets("Data") lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row For i = 2 To lastRow jsonStr = "{""id"":" & ws.Cells(i, "A").Value & _ ",""name"":""" & ws.Cells(i, "B").Value & _ """,""price"":" & ws.Cells(i, "C").Value & "}" ws.Cells(i, "D").Value = jsonStr Next i
End Sub
Kết quả: Dòng 2 sẽ có {"id":1,"name":"Sản phẩm A","price":100}.
8. Khi nào nên chọn phương pháp nào?
| Tiêu chí | Dùng dấu “&” | CONCAT / CONCATENATE | TEXTJOIN | Power Query | VBA |
|---|---|---|---|---|---|
| Dữ liệu nhỏ (dưới 10.000 hàng) | ✅ | ✅ | ✅ (đặc biệt khi có ô trống) | ❌ (quá phức) | ✅ (nếu muốn tự động hoá) |
| Cần bỏ qua ô trống tự động | ❌ | ❌ | ✅ | ✅ | ✅ (có thể lập trình) |
| Yêu cầu tùy chỉnh phức tạp (điều kiện, định dạng) | ✅ (kết hợp IF) | ✅ (kết hợp IF) | ✅ (kết hợp IF) | ✅ (công thức M) | ✅ (toàn quyền) |
| Dữ liệu thay đổi thường xuyên, cần refresh | ❌ | ❌ | ❌ | ✅ | ✅ (macro có thể refresh) |
| Người dùng không quen VBA | ✅ | ✅ | ✅ | ✅ (giao diện) | ❌ |
| Hiệu suất khi xử lý hàng triệu bản ghi | ❌ | ❌ | ❌ | ✅ (Power Query) | ✅ (macro nhanh) |
9. Kết luận
Việc ghép nội dung 2 cột trong Excel không còn là một thách thức khó khăn nữa khi bạn đã nắm vững các công cụ và kỹ thuật sau:
- Công thức cơ bản: dấu “&”,
CONCAT,TEXTJOIN. - Xử lý dữ liệu sạch:
TRIM,UPPER,PROPER,IFERROR. - Power Query: giải pháp mạnh mẽ cho dữ liệu lớn và tự động hoá.
- VBA: tùy biến tối đa, phù hợp cho các quy trình phức tạp hoặc khi muốn tích hợp vào nút bấm.
Bạn có thể lựa chọn phương pháp phù hợp nhất dựa trên độ lớn của dữ liệu, tính linh hoạt và kiến thức kỹ thuật của mình. Khi áp dụng đúng, việc ghép cột sẽ giúp bạn tiết kiệm thời gian, giảm lỗi nhập liệu và tạo ra các báo cáo, danh sách chuyên nghiệp hơn.
Hy vọng bài viết này đã cung cấp cho bạn một cẩm nang toàn diện để thực hiện mọi nhu cầu ghép nội dung trong Excel. Hãy thử ngay trên tập dữ liệu của mình, và đừng ngần ngại kết hợp các phương pháp (ví dụ: công thức trong Power Query hoặc macro VBA) để đạt được hiệu quả tối ưu.
Chúc bạn thành công!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
