Có thể bạn quan tâm: Xóa Dòng Trống Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Lời mở đầu
Trong công việc văn phòng, việc xử lý dữ liệu trong Excel là một phần không thể thiếu. Tuy nhiên, một trong những vấn đề phổ biến nhất mà người dùng gặp phải là khoảng trống (space) thừa trong các ô dữ liệu. Những khoảng trống này có thể xuất hiện ở đầu, cuối, hoặc giữa các từ, gây ra lỗi khi thực hiện các phép tính, lọc dữ liệu, hoặc khi so sánh chuỗi. Nếu không được xử lý đúng cách, chúng sẽ làm giảm hiệu suất làm việc và gây nhầm lẫn trong báo cáo.
Bài viết này sẽ cung cấp cho bạn hướng dẫn chi tiết, đầy đủ và thực tiễn về cách xóa khoảng trống thừa trong Excel, từ các phương pháp đơn giản sử dụng chức năng tích hợp sẵn cho tới các kỹ thuật nâng cao với công thức, Power Query và VBA. Bạn sẽ học được:
- Cách sử dụng TRIM (HOẶC LÀ LỌC) để loại bỏ khoảng trống đầu và cuối.
- Cách dùng SUBSTITUTE để xóa hoặc thay thế các khoảng trống giữa các từ.
- Cách áp dụng POWER QUERY để làm sạch dữ liệu hàng loạt.
- Viết macro VBA tự động xử lý toàn bộ bảng tính.
- Các mẹo nhanh (shortcut) và lưu ý khi làm việc với dữ liệu chứa khoảng trống.
Hãy cùng khám phá từng bước chi tiết dưới đây để trở thành “bậc thầy” trong việc làm sạch dữ liệu Excel nhé!
Có thể bạn quan tâm: Cách Xóa Tất Cả Các Bình Luận (comments) Trong Excel: Hướng Dẫn Chi Tiết Từ A Đến Z
1. Hiểu rõ vấn đề: Khoảng trống thừa xuất hiện ở đâu?
Trước khi đưa ra giải pháp, chúng ta cần nắm rõ các loại khoảng trống mà người dùng thường gặp:
| Loại khoảng trống | Mô tả | Ví dụ | Hậu quả khi không xử lý |
|---|---|---|---|
| Khoảng trống đầu (leading spaces) | Các ký tự space nằm ở đầu chuỗi | " Hà Nội" | Khi so sánh " Hà Nội" với "Hà Nội" sẽ trả về FALSE. |
| Khoảng trống cuối (trailing spaces) | Các ký tự space nằm ở cuối chuỗi | "Hà Nội " | Khi dùng hàm VLOOKUP hoặc MATCH sẽ không tìm thấy giá trị. |
| Khoảng trống dư thừa giữa các từ | Nhiều space liên tiếp giữa các từ | "Hà Nội" | Khi tính độ dài chuỗi hoặc xuất dữ liệu, gây sai lệch. |
| Khoảng trống không phải ký tự space (non‑breaking space, tab, newline) | Các ký tự đặc biệt như CHAR(160), CHAR(9), CHAR(10) | "Hà Nội" (non‑breaking space) | Không được nhận diện bởi hàm TRIM thông thường. |
| Khoảng trống ẩn trong công thức | Khi copy‑paste dữ liệu từ web, có thể mang theo ký tự không hiển thị | "Hà Nội" (có ký tự Unicode 0x00A0) | Khi dùng LEN sẽ trả về giá trị không mong muốn. |
Lưu ý: Khi làm việc với dữ liệu nhập từ các nguồn khác nhau (web, PDF, hệ thống ERP…), khả năng xuất hiện các ký tự đặc biệt rất cao. Vì vậy, việc xác định loại khoảng trống là bước đầu tiên quan trọng.
Có thể bạn quan tâm: Độ Cao Hàng Mặc Định Trong Excel: Tổng Quan Và Cách Điều Chỉnh Chính Xác
2. Phương pháp nhanh: Sử dụng hàm TRIM (HOẶC LÀ LỌC)
2.1. Hàm TRIM chuẩn (Excel bản tiếng Anh)
Cú pháp: =TRIM(text)
- Chức năng: Loại bỏ mọi khoảng trống ở đầu và cuối chuỗi, đồng thời thay thế các khoảng trống liền nhau ở giữa bằng một khoảng trống duy nhất.
- Giới hạn: Không loại bỏ ký tự
CHAR(160)(non‑breaking space) và các ký tự tab (CHAR(9)) hay newline (CHAR(10)).
Ví dụ thực tế:
| A (Dữ liệu gốc) | Công thức | Kết quả |
|---|---|---|
" Hà Nội " | =TRIM(A2) | "Hà Nội" |
"Hà Nội" (có CHAR(160)) | =TRIM(A3) | "Hà Nội" (không thay đổi) |
2.2. Hàm CLEAN + TRIM (xử lý ký tự ẩn)
Nếu dữ liệu chứa các ký tự không hiển thị (carriage return, line feed, tab), bạn có thể kết hợp CLEAN và TRIM:
=TRIM(CLEAN(A2))
- CLEAN: Loại bỏ các ký tự không in được (ASCII từ 0 đến 31).
- TRIM: Sau khi các ký tự ẩn đã bị loại bỏ, TRIM sẽ xử lý khoảng trống còn lại.
2.3. Xử lý CHAR(160) (non‑breaking space)
Đây là loại khoảng trống phổ biến khi copy dữ liệu từ web. Để loại bỏ, bạn có thể dùng SUBSTITUTE:
=TRIM(SUBSTITUTE(A2, CHAR(160), ""))
- Giải thích:
SUBSTITUTEthay thếCHAR(160)bằng chuỗi rỗng, sau đóTRIMxóa các khoảng trống còn lại.
2.4. Áp dụng hàm TRIM cho toàn bộ cột
- Thêm cột phụ: Giả sử dữ liệu nằm ở cột A, chèn cột B bên cạnh.
- Nhập công thức
=TRIM(CLEAN(SUBSTITUTE(A2, CHAR(160), "")))vào B2. - Kéo công thức xuống cho toàn bộ dữ liệu.
- Sao chép giá trị của cột B (Copy → Paste Special → Values) và dán lại lên cột A (hoặc xóa cột A cũ).
2.5. Shortcut nhanh: Ctrl + H (Find & Replace)
Nếu chỉ có một số ô cần xóa khoảng trống cuối hoặc đầu, bạn có thể:
- Xóa khoảng trống đầu:
- Mở Find & Replace (
Ctrl + H). - Trong “Find what” nhập một dấu cách, sau đó bấm vào “Options” → “Match entire cell contents” để chỉ tìm ô bắt đầu bằng dấu cách.
Để trống “Replace with” và nhấn “Replace All”.
Xóa khoảng trống cuối:
- Tương tự, nhưng trong “Find what” nhập
(dấu cách ở cuối) và “Replace with” nhập(dấu hoa thị không cần thiết, chỉ để Excel nhận diện).
Lưu ý: Phương pháp này không an toàn cho dữ liệu lớn, vì nó có thể xóa nhầm các khoảng trống hợp lệ. Hãy luôn sao lưu dữ liệu trước khi thực hiện.
3. Xóa khoảng trống dư thừa giữa các từ bằng công thức
Khi cần loại bỏ toàn bộ khoảng trống (kể cả giữa các từ) hoặc giảm số lượng khoảng trống giữa các từ, chúng ta sẽ dùng hàm SUBSTITUTE kết hợp với TRIM.
3.1. Loại bỏ tất cả khoảng trống
=SUBSTITUTE(A2, " ", "")
- Kết quả:
"HàNội"(không có khoảng trống nào). - Lưu ý: Nếu dữ liệu có ký tự
CHAR(160), hãy thay thế bằngSUBSTITUTE(A2, CHAR(160), "")trước.
3.2. Giảm khoảng trống giữa các từ xuống còn một
Nếu muốn giữ một khoảng trống duy nhất giữa các từ (trong trường hợp có nhiều space liền nhau), công thức sau là lựa chọn tốt:
=TRIM(SUBSTITUTE(A2, " ", " "))
- Cách hoạt động:
SUBSTITUTEthay thế hai dấu cách liên tiếp bằng một dấu cách, lặp lại cho tới khi không còn cặpnào.TRIMcuối cùng sẽ xóa khoảng trống đầu/cuối nếu còn.
Lưu ý: Đối với dữ liệu có nhiều hơn 2 dấu cách liên tiếp, bạn có thể lặp lại công thức hoặc dùng hàm lặp REPLACE trong VBA (sẽ được đề cập trong phần VBA).
3.3. Công thức tổng hợp (xử lý đa dạng)
Đây là một công thức “đa năng” có thể xử lý:
- Khoảng trống đầu/cuối
- Khoảng trống dư thừa giữa các từ
CHAR(160)(non‑breaking space)- Các ký tự ẩn (tab, newline)
=TRIM(CLEAN(SUBSTITUTE(SUBSTITUTE(A2, CHAR(160), " "), CHAR(9), " ")))
Giải thích:
SUBSTITUTE(A2, CHAR(160), " ")→ thayCHAR(160)bằng space thông thường.SUBSTITUTE(..., CHAR(9), " ")→ thay tab (CHAR(9)) bằng space.CLEAN→ loại bỏ các ký tự không in được.TRIM→ xóa khoảng trống đầu/cuối, giảm các khoảng trống liền nhau thành một.
4. Xử lý hàng loạt bằng Power Query (Get & Transform Data)
Power Query là công cụ mạnh mẽ tích hợp trong Excel (từ phiên bản 2026 trở lên) cho phép làm sạch dữ liệu mà không cần viết công thức phức tạp. Dưới đây là quy trình chi tiết:
4.1. Nhập dữ liệu vào Power Query
- Chọn bảng dữ liệu →
Data → From Table/Range. - Nếu dữ liệu chưa ở dạng bảng, Excel sẽ tự động tạo bảng (bạn có thể xác nhận phạm vi).
4.2. Sử dụng chức năng “Trim” và “Clean”
Trong Power Query Editor:
- Chọn cột cần làm sạch (hoặc
Ctrl + Clickđể chọn nhiều cột). - Nhấp chuột phải → Transform → Trim (loại bỏ khoảng trống đầu/cuối).
- Nhấp chuột phải → Transform → Clean (loại bỏ ký tự không hiển thị).
4.3. Thay thế ký tự CHAR(160)

Có thể bạn quan tâm: Xóa Nhiều Sheet Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
- Với cột đã chọn, vào Home → Replace Values.
- Trong “Value To Find” nhập
Alt+0160(đây là cách nhậpCHAR(160)trong Power Query) hoặc dán ký tự không‑breaking space trực tiếp. - “Replace With” để trống hoặc nhập một space thông thường.
4.4. Giảm khoảng trống giữa các từ
Power Query không có hàm TRIM nội bộ cho giữa các từ, nhưng bạn có thể:
- Add Column → Custom Column và nhập công thức M:
= Text.Trim(Text.Replace(Text.Replace(ColumnName, " ", " "), Char.FromNumber(160), " "))
Text.Replace(ColumnName, " ", " ")sẽ thay thế hai space bằng một.- Bạn có thể lặp lại hàm
Text.Replacenếu cần giảm nhiều hơn hai space.
4.5. Áp dụng và tải dữ liệu trở lại Excel
Sau khi hoàn tất, nhấn Close & Load → dữ liệu sẽ được tải vào một sheet mới hoặc vào cùng sheet dưới dạng Table. Bạn có thể gộp lại (append) hoặc gán lại cho bảng gốc.
Ưu điểm của Power Query:
- Không phá vỡ cấu trúc bảng gốc.
- Lưu lịch sử các bước làm sạch, dễ dàng chỉnh sửa lại.
- Xử lý dữ liệu lớn nhanh hơn so với công thức mảng.
5. Tự động hóa với VBA: Macro xóa khoảng trống toàn bộ workbook
Khi phải xử lý hàng ngàn ô trong nhiều sheet, viết công thức hoặc dùng Power Query có thể mất thời gian. VBA cho phép tạo một macro một lần và chạy trên toàn bộ workbook.
5.1. Macro cơ bản: Xóa khoảng trống đầu/cuối & thay CHAR(160)
Sub CleanSpaces() Dim ws As Worksheet Dim rng As Range Dim cell As Range ' Lặp qua từng sheet trong workbook For Each ws In ThisWorkbook.Worksheets ' Xác định vùng dữ liệu (cột A đến Z, dòng 1 đến 1000 - tùy chỉnh) Set rng = ws.UsedRange Application.ScreenUpdating = False For Each cell In rng If Not IsError(cell) Then ' Thay CHAR(160) bằng space thường cell.Value = Replace(cell.Value, Chr(160), " ") ' Loại bỏ khoảng trống đầu/cuối cell.Value = Trim(cell.Value) ' Loại bỏ tab và newline cell.Value = Application.WorksheetFunction.Clean(cell.Value) ' Giảm nhiều space liền nhau thành một Do While InStr(cell.Value, " ") > 0 cell.Value = Replace(cell.Value, " ", " ") Loop End If Next cell Application.ScreenUpdating = True Next ws MsgBox "Đã xóa khoảng trống thừa trong toàn bộ workbook!", vbInformation
End Sub
Giải thích:
UsedRangetự động lấy toàn bộ vùng dữ liệu đang có trong sheet.- Vòng lặp
Do While InStr(cell.Value, " ") > 0lặp lại cho tới khi không còn cặp space nào. Application.WorksheetFunction.Cleanloại bỏ ký tự ẩn.
5.2. Macro nâng cao: Lựa chọn cột & tùy chọn xóa tất cả khoảng trống
Nếu bạn muốn chỉ áp dụng cho một cột (ví dụ cột A) và có tùy chọn xóa toàn bộ khoảng trống, hãy dùng:
Sub CleanSpecificColumn() Dim ws As Worksheet Dim rng As Range Dim cell As Range Dim col As String Dim deleteAllSpaces As Boolean col = InputBox("Nhập tên cột (ví dụ: A):", "Chọn cột") If col = "" Then Exit Sub deleteAllSpaces = MsgBox("Bạn có muốn xóa tất cả khoảng trống trong ô không?" & vbCrLf & _ "(Nếu có, sẽ xóa cả space giữa các từ)", vbYesNo + vbQuestion) = vbYes For Each ws In ThisWorkbook.Worksheets Set rng = ws.Columns(col).SpecialCells(xlCellTypeConstants) Application.ScreenUpdating = False For Each cell In rng If Not IsError(cell) Then cell.Value = Replace(cell.Value, Chr(160), " ") cell.Value = Application.WorksheetFunction.Clean(cell.Value) If deleteAllSpaces Then cell.Value = Replace(cell.Value, " ", "") Else cell.Value = Trim(cell.Value) Do While InStr(cell.Value, " ") > 0 cell.Value = Replace(cell.Value, " ", " ") Loop End If End If Next cell Application.ScreenUpdating = True Next ws MsgBox "Hoàn thành làm sạch cột " & col, vbInformation
End Sub
Cách sử dụng:
- Nhấn
Alt + F11→ Insert → Module → dán code. - Đóng VBA Editor →
Alt + F8→ chọnCleanSpecificColumn→ Run. - Nhập tên cột và chọn có xóa hết khoảng trống hay không.
5.3. Tối ưu hiệu suất cho dữ liệu lớn
- Sử dụng biến mảng: Đọc toàn bộ vùng vào một mảng, xử lý trong bộ nhớ, sau đó ghi lại. Điều này giảm thời gian thao tác vào/ra ô.
Sub CleanUsingArray() Dim ws As Worksheet Dim arr As Variant Dim i As Long, j As Long Set ws = ThisWorkbook.Worksheets("Sheet1") arr = ws.UsedRange.Value ' Đọc toàn bộ vùng vào mảng For i = 1 To UBound(arr, 1) For j = 1 To UBound(arr, 2) If Not IsError(arr(i, j)) Then Dim txt As String txt = CStr(arr(i, j)) txt = Replace(txt, Chr(160), " ") txt = Application.WorksheetFunction.Clean(txt) txt = Trim(txt) Do While InStr(txt, " ") > 0 txt = Replace(txt, " ", " ") Loop arr(i, j) = txt End If Next j Next i ws.UsedRange.Value = arr ' Ghi lại mảng đã được làm sạch MsgBox "Xóa khoảng trống bằng mảng hoàn thành!", vbInformation
End Sub
Lợi ích: Tốc độ nhanh gấp 10‑20 lần so với việc duyệt từng ô.
6. Kiểm tra và xác nhận dữ liệu đã sạch
Sau khi thực hiện các bước trên, bạn nên kiểm tra lại để chắc chắn không còn khoảng trống thừa.
6.1. Công thức kiểm tra độ dài (LEN)
- Công thức:
=LEN(A2)→ Độ dài chuỗi. - So sánh: Nếu
LEN(TRIM(A2))khácLEN(A2), có khoảng trống đầu/cuối.
6.2. Đánh dấu ô có khoảng trống
Bạn có thể dùng Conditional Formatting để tô màu các ô còn chứa khoảng trống:
- Chọn vùng dữ liệu.
Home → Conditional Formatting → New Rule → Use a formula.- Nhập công thức:
=LEN(A2)<>LEN(TRIM(A2)). - Đặt màu nền (ví dụ: đỏ nhạt) → OK.
Các ô màu sẽ là những ô chưa được làm sạch.
6.3. Sử dụng hàm COUNTIF để đếm ô có khoảng trống
=COUNTIF(A:A, " ") ' Đếm ô có ít nhất một space ở bất kỳ vị trí nào
Nếu kết quả là 0 → không còn khoảng trống.
7. Các trường hợp đặc biệt và giải pháp
7.1. Dữ liệu dạng số nhưng có space
Khi một ô chứa số nhưng có space (ví dụ " 123 "), Excel sẽ hiểu nó là văn bản. Để chuyển lại thành số:
=VALUE(TRIM(A2))
Hoặc trong VBA:
cell.Value = CDbl(Trim(cell.Value))
7.2. Dữ liệu dạng ngày tháng có space
Nếu ngày tháng được nhập dưới dạng " 01/01/2026 ":
=DATEVALUE(TRIM(A2))
Hoặc dùng Text to Columns → Data → Text to Columns → chọn Date để chuyển nhanh.
7.3. Xóa khoảng trống trong công thức (formula text)
Nếu bạn có công thức lưu dưới dạng chuỗi (ví dụ trong cột chứa công thức dạng text), bạn vẫn có thể dùng SUBSTITUTE:
=SUBSTITUTE(A2, " ", "")
Nhưng lưu ý: không dùng TRIM vì nó sẽ giữ lại một khoảng trống giữa các phần của công thức, gây lỗi khi công thức được chuyển lại thành thực.
7.4. Khi dữ liệu chứa ký tự Unicode (ví dụ: dấu cách tiếng Việt)
Trong một số trường hợp, dấu cách được mã hoá bằng Unicode U+00A0 (non‑breaking space). Bạn có thể dùng:
=TRIM(SUBSTITUTE(A2, UNICHAR(160), ""))
Hoặc trong VBA:
cell.Value = Replace(cell.Value, ChrW(160), " ")
8. Tổng hợp nhanh: Checklist làm sạch khoảng trống trong Excel
| Bước | Công cụ | Mô tả | Khi nào dùng |
|---|---|---|---|
| 1 | TRIM | Xóa space đầu/cuối, giảm space giữa thành 1 | Dữ liệu chuẩn, không có ký tự đặc biệt |
| 2 | CLEAN | Loại bỏ ký tự không hiển thị (tab, newline) | Dữ liệu nhập từ web, file txt |
| 3 | SUBSTITUTE + CHAR(160) | Thay non‑breaking space bằng space thông thường | Khi copy từ web, PDF |
| 4 | Find & Replace (Ctrl+H) | Xóa nhanh space đầu/cuối trong một vùng nhỏ | Khi cần sửa nhanh, không muốn tạo cột phụ |
| 5 | Power Query | Làm sạch hàng loạt, lưu lại lịch sử bước | Dữ liệu lớn, nhiều sheet, cần tái sử dụng |
| 6 | VBA Macro | Tự động hoá toàn bộ workbook, tốc độ cao | Dự án định kỳ, dữ liệu hàng nghìn‑tỷ |
| 7 | Conditional Formatting | Kiểm tra nhanh các ô còn lỗi | Sau khi làm sạch, để xác nhận |
| 8 | LEN + TRIM | Kiểm tra độ dài chuỗi | Khi muốn chắc chắn không còn space |
9. Kết luận
Xử lý khoảng trống thừa trong Excel không chỉ là một công việc “thông thường” mà còn là bước quan trọng trong quy trình làm sạch dữ liệu (data cleaning). Khi dữ liệu sạch, mọi công việc tiếp theo – tính toán, phân tích, báo cáo – sẽ diễn ra trơn tru, chính xác hơn.
Trong bài viết, chúng ta đã:
- Hiểu rõ các loại khoảng trống và hậu quả của chúng.
- Áp dụng các hàm tích hợp như
TRIM,CLEAN,SUBSTITUTEđể xử lý nhanh. - Sử dụng Power Query để làm sạch dữ liệu hàng loạt, bảo toàn lịch sử thao tác.
- Viết macro VBA cho các tác vụ tự động, đặc biệt hữu ích với dữ liệu lớn.
- Kiểm tra và xác nhận kết quả bằng công cụ Excel sẵn có.
Bạn có thể kết hợp các phương pháp trên tùy theo độ phức tạp và khối lượng dữ liệu. Đừng quên luôn sao lưu file gốc trước khi thực hiện các thao tác thay đổi hàng loạt, và đánh giá lại kết quả sau mỗi bước để tránh mất mát thông tin quan trọng.
Hy vọng bài viết đã cung cấp cho bạn toàn bộ kiến thức cần thiết để xóa khoảng trống thừa trong Excel một cách hiệu quả, nhanh chóng và chuyên nghiệp. Chúc bạn thành công trong công việc và luôn có những bảng tính sạch sẽ, chuẩn xác!

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ẻ.
