Làm Sạch Dữ Liệu Trong Excel: TRIM, CLEAN, SUBSTITUTE Và Các Kỹ Thuật Data Cleaning
Chia sẻ
"Hướng dẫn chi tiết cách làm sạch dữ liệu trong Excel: xóa khoảng trắng, ký tự đặc biệt, chuẩn hóa text, tách/gộp dữ liệu bẩn thành dữ liệu sạch."
1. Tại sao dữ liệu luôn bẩn?
Dữ liệu thực tế KHÔNG BAO GIỜ sạch: import từ hệ thống khác có khoảng trắng thừa, copy từ web có ký tự ẩn, nhập tay bị sai chính tả, format không đồng nhất. "Garbage in, garbage out" — dữ liệu bẩn cho ra kết quả sai.
2. TRIM — Xóa khoảng trắng thừa
=TRIM(text)Xóa tất cả khoảng trắng thừa:
Đầu chuỗi:
" An Nguyễn"→"An Nguyễn"Cuối chuỗi:
"An Nguyễn "→"An Nguyễn"Giữa (chỉ giữ 1):
"An Nguyễn"→"An Nguyễn"
2.1. TRIM không xóa được
TRIM chỉ xóa ký tự space (ASCII 32). Không xóa:
Non-breaking space (ASCII 160) — hay gặp từ web
Tab, line break
Giải pháp: =TRIM(SUBSTITUTE(A1, CHAR(160), " "))
3. CLEAN — Xóa ký tự không in được
=CLEAN(text)Xóa ký tự ASCII 0-31 (non-printable): line break, tab, null character.
3.1. Kết hợp TRIM + CLEAN
=TRIM(CLEAN(A1))Công thức "quét sạch" cơ bản: xóa ký tự ẩn → xóa khoảng trắng thừa.
4. SUBSTITUTE — Thay thế text
=SUBSTITUTE(text, old_text, new_text, [instance_num])4.1. Xóa ký tự cụ thể
=SUBSTITUTE(A1, "-", "") → Xóa tất cả dấu gạch ngang
=SUBSTITUTE(A1, " ", "") → Xóa tất cả khoảng trắng
=SUBSTITUTE(A1, CHAR(10), " ") → Thay line break bằng space4.2. Thay thế lần xuất hiện thứ N
=SUBSTITUTE(A1, ".", ",", 1) → Chỉ thay dấu chấm đầu tiên4.3. Nhiều SUBSTITUTE lồng nhau
Xóa nhiều ký tự cùng lúc:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, "-", ""), " ", ""), ".", "")5. UPPER, LOWER, PROPER — Chuẩn hóa chữ hoa/thường
=UPPER("an nguyễn") → "AN NGUYỄN"
=LOWER("AN NGUYỄN") → "an nguyễn"
=PROPER("an nguyễn") → "An Nguyễn"5.1. Lưu ý PROPER với tiếng Việt
PROPER viết hoa chữ đầu mỗi từ. Với tiếng Việt thường OK, nhưng cần kiểm tra:
"TP.HCM"→"Tp.Hcm"(sai!)"NGUYỄN VĂN AN"→"Nguyễn Văn An"(đúng!)
6. Remove Duplicates — Xóa trùng lặp
Chọn vùng dữ liệu
Data → Remove Duplicates
Chọn cột kiểm tra trùng → OK
Excel xóa dòng trùng, giữ dòng đầu tiên.
6.1. Đếm trước khi xóa
=COUNTIF(A:A, A2)Nếu > 1 → dòng trùng. Lọc filter > 1 để xem trước khi xóa.
7. Text to Columns — Tách dữ liệu
Data → Text to Columns
7.1. Tách bằng Delimiter
"An Nguyễn, Kinh doanh, 10000000" → tách bằng dấu ,
7.2. Tách bằng Fixed Width
Dữ liệu có cấu trúc cố định → đặt điểm cắt thủ công.
7.3. Ứng dụng: Fix số bị dính text
Cột số hiện text (căn trái, VLOOKUP lỗi):
Chọn cột → Data → Text to Columns
Next → Next → chọn General → Finish
Excel parse lại → số trở về đúng format.
8. Flash Fill — Tự đoán pattern
Ctrl + E hoặc Data → Flash Fill
8.1. Ví dụ: Tách họ tên
Họ và tên | Họ |
|---|---|
Nguyễn Văn An | Nguyễn |
Trần Thị Bình | (gõ "Trần" → Ctrl+E) |
Flash Fill tự đoán: bạn đang lấy từ đầu tiên → áp dụng cho tất cả.
8.2. Ví dụ: Chuẩn hóa số điện thoại
Gốc | Chuẩn |
|---|---|
0912-345-678 | 0912345678 |
091.234.5678 | (gõ "0912345678" → Ctrl+E) |
9. Find & Replace cho Data Cleaning
Ctrl + H
9.1. Xóa line break
Find: Ctrl+J (nhập line break)
Replace: (để trống hoặc space)
9.2. Xóa tất cả số
Find:
[0-9](bật Use wildcards)Replace: (để trống)
9.3. Chuẩn hóa spacing
Find: 2 spaces
" "Replace: 1 space
" "Click Replace All nhiều lần cho đến khi 0 replacements
10. VALUE, TEXT — Chuyển đổi kiểu dữ liệu
10.1. Chuyển text thành số
=VALUE("1234") → 1234 (dạng số)
=VALUE("10/03/2024") → 45361 (serial date)10.2. Nhân 1 hoặc cộng 0
=A1*1 → ép text thành số
=A1+0 → ép text thành số
=A1&"" → ép số thành text10.3. Chuyển số thành text format
=TEXT(1234567, "#,##0") → "1,234,567"
=TEXT(0.85, "0.0%") → "85.0%"
=TEXT(TODAY(), "DD/MM/YYYY") → "02/03/2024"11. CHAR và CODE — Xử lý ký tự đặc biệt
=CODE("A") → 65
=CHAR(65) → "A"
=CHAR(10) → Line break
=CHAR(9) → Tab
=CHAR(160) → Non-breaking space11.1. Tạo line break trong công thức
="Dòng 1" & CHAR(10) & "Dòng 2"Bật Wrap Text để hiện 2 dòng.
12. Công thức Data Cleaning tổng hợp
12.1. Ultimate clean formula
=TRIM(CLEAN(SUBSTITUTE(SUBSTITUTE(A1, CHAR(160), " "), CHAR(9), " ")))Xóa: non-breaking space, tab, ký tự ẩn, khoảng trắng thừa.
12.2. Chỉ giữ số
=SUMPRODUCT(MID(0&A1, LARGE(ISNUMBER(--MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1))*ROW(INDIRECT("1:"&LEN(A1))), ROW(INDIRECT("1:"&LEN(A1))))+1, 1)*10^ROW(INDIRECT("1:"&LEN(A1)))/10)Hoặc đơn giản hơn: Flash Fill (Ctrl+E).
13. Mẹo Data Cleaning
Backup trước khi clean: Copy sheet gốc trước mọi thao tác
TRIM+CLEAN luôn: Áp dụng cho MỌI dữ liệu import
Text to Columns fix số: Số bị text → Text to Columns → General
Flash Fill > công thức: Nhanh hơn viết công thức phức tạp
Validate sau khi clean: Dùng COUNTIF kiểm tra trùng, ISBLANK kiểm tra trống
14. Tổng kết
Data Cleaning chiếm 80% thời gian phân tích dữ liệu. Nắm vững TRIM, CLEAN, SUBSTITUTE, Flash Fill, và Text to Columns giúp bạn biến dữ liệu bẩn thành dữ liệu sạch — nền tảng cho MỌI phân tích chính xác.
📥 Tải File Demo
📥 Tải file demo: data-cleaning-demo.xlsx
📎 File đính kèm bài viết — chứa đầy đủ dữ liệu mẫu
Mục lục
- 1. Tại sao dữ liệu luôn bẩn?
- 2. TRIM — Xóa khoảng trắng thừa
- 2.1. TRIM không xóa được
- 3. CLEAN — Xóa ký tự không in được
- 3.1. Kết hợp TRIM + CLEAN
- 4. SUBSTITUTE — Thay thế text
- 4.1. Xóa ký tự cụ thể
- 4.2. Thay thế lần xuất hiện thứ N
- 4.3. Nhiều SUBSTITUTE lồng nhau
- 5. UPPER, LOWER, PROPER — Chuẩn hóa chữ hoa/thường
- 5.1. Lưu ý PROPER với tiếng Việt
- 6. Remove Duplicates — Xóa trùng lặp
- 6.1. Đếm trước khi xóa
- 7. Text to Columns — Tách dữ liệu
- 7.1. Tách bằng Delimiter
- 7.2. Tách bằng Fixed Width
- 7.3. Ứng dụng: Fix số bị dính text
- 8. Flash Fill — Tự đoán pattern
- 8.1. Ví dụ: Tách họ tên
- 8.2. Ví dụ: Chuẩn hóa số điện thoại
- 9. Find & Replace cho Data Cleaning
- 9.1. Xóa line break
- 9.2. Xóa tất cả số
- 9.3. Chuẩn hóa spacing
- 10. VALUE, TEXT — Chuyển đổi kiểu dữ liệu
- 10.1. Chuyển text thành số
- 10.2. Nhân 1 hoặc cộng 0
- 10.3. Chuyển số thành text format
- 11. CHAR và CODE — Xử lý ký tự đặc biệt
- 11.1. Tạo line break trong công thức
- 12. Công thức Data Cleaning tổng hợp
- 12.1. Ultimate clean formula
- 12.2. Chỉ giữ số
- 13. Mẹo Data Cleaning
- 14. Tổng kết
Muốn làm chủ Excel?
Tham gia khóa học E-Learning của Trà Đá Data để được hướng dẫn chi tiết từ A-Z với Case Study thực tế.
Tìm hiểu ngayBình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.
Bài viết liên quan
Khám phá thêm các bài viết cùng chủ đề
INDIRECT Và OFFSET: Tạo Tham Chiếu Động Trong Excel
INDIRECT biến text thành tham chiếu, OFFSET tạo range dịch chuyển. Tạo dependent dropdowns, dynamic charts, cross-sheet lookups một cách linh hoạt.
IF Nâng Cao: IFS, SWITCH, LAMBDA, LET — Công Thức Điều Kiện Thế Hệ Mới
Không còn nested IF 64 cấp! IFS cho nhiều điều kiện, SWITCH cho match giá trị, LET cho biến trung gian, LAMBDA cho hàm tự tạo. So sánh chi tiết và ví dụ.
Dynamic Array Excel: UNIQUE, SORT, FILTER, SEQUENCE — Công Thức Tràn
Hướng dẫn Dynamic Array Excel 365: UNIQUE lọc không trùng, SORT sắp xếp, FILTER lọc điều kiện, SEQUENCE tạo chuỗi số. Kết hợp tạo solutions mạnh mẽ.
