Trong môi trường làm việc hiện đại, việc xử lý dữ liệu văn bản trên Excel là một trong những kỹ năng quan trọng mà mỗi nhân viên văn phòng, nhà phân tích dữ liệu hay người quản lý dự án cần nắm vững. Một trong những công việc thường gặp nhưng không kém phần phức tạp là bỏ dấu (hay còn gọi là loại bỏ dấu tiếng Việt) trong các ô dữ liệu. Việc này không chỉ giúp chuẩn hoá dữ liệu, dễ dàng so sánh, lọc, sắp xếp mà còn hỗ trợ khi xuất dữ liệu sang các hệ thống không hỗ trợ Unicode, hoặc khi tạo các URL, mã SKU, và các trường hợp cần dữ liệu “plain text” không có dấu.
Bài viết dưới đây sẽ cung cấp cho bạn một hướng dẫn chi tiết, đầy đủ và thực tiễn về cách bỏ dấu trong Excel, bao gồm:
- Giới thiệu tổng quan về vấn đề và lý do cần bỏ dấu.
- Các cách thực hiện: sử dụng hàm có sẵn, tạo công thức tùy chỉnh, dùng VBA, và các tiện ích bên ngoài.
- Bước thực hành chi tiết từng phương pháp, kèm ví dụ thực tế.
- Mẹo tối ưu: xử lý dữ liệu hàng loạt, bảo toàn dữ liệu gốc, và tự động hoá quy trình.
- So sánh ưu nhược điểm của từng phương pháp để bạn lựa chọn giải pháp phù hợp.
- Các lưu ý quan trọng khi làm việc với dữ liệu tiếng Việt trong Excel.
Mục tiêu: Khi đọc xong bài viết này, bạn sẽ có thể:
– Hiểu rõ tại sao và khi nào cần bỏ dấu trong Excel.
– Áp dụng nhanh các công thức, hàm, hoặc macro để loại bỏ dấu một cách chính xác.
– Tự động hoá quy trình xử lý dữ liệu lớn mà không tốn thời gian thủ công.
Có thể bạn quan tâm: Chuyển Từ Pdf Qua Excel: Hướng Dẫn Chi Tiết, Công Cụ Hiệu Quả Và Mẹo Tối Ưu Hóa Quy Trình
1. Tại sao cần bỏ dấu trong Excel?
1.1. Chuẩn hoá dữ liệu cho việc so sánh và lọc
Khi dữ liệu chứa dấu, Excel sẽ coi các ký tự có dấu và không dấu là khác nhau. Ví dụ, “Hà Nội” và “Ha Noi” sẽ không được xem là trùng khớp trong hàm VLOOKUP, MATCH hay khi sử dụng bộ lọc tự động. Nếu bạn muốn so sánh danh sách địa chỉ, tên khách hàng, hoặc mã sản phẩm mà trong một cột có dấu và cột còn lại không dấu, việc bỏ dấu sẽ giúp tạo một tiêu chuẩn chung, giảm thiểu lỗi trùng lặp.
1.2. Tương thích với các hệ thống không hỗ trợ Unicode
Nhiều phần mềm, hệ thống quản lý (ERP, CRM) hoặc website chỉ chấp nhận ASCII (ký tự không dấu). Khi nhập dữ liệu có dấu, chúng có thể bị lỗi, biến thành ký tự lạ hoặc thậm chí bị từ chối. Việc chuẩn bị dữ liệu “plain text” không dấu trong Excel giúp giảm thời gian chỉnh sửa khi nhập dữ liệu vào các hệ thống này.
1.3. Tạo URL, mã SKU, và các trường hợp đặc thù
Khi tạo slug cho URL (ví dụ: https://example.com/ha-noi), hoặc mã SKU cho sản phẩm, dấu thường không được phép xuất hiện. Thay vào đó, bạn cần một chuỗi ký tự không dấu, thường kèm theo việc chuyển sang chữ thường và thay thế dấu cách bằng dấu gạch nối. Excel có thể thực hiện mọi bước này nếu biết cách bỏ dấu.
1.4. Đảm bảo tính toàn vẹn dữ liệu khi xuất khẩu
Khi xuất dữ liệu sang CSV, TXT, hoặc các phần mềm phân tích khác, dấu có thể bị mất hoặc hiển thị sai nếu không có mã hoá đúng. Bỏ dấu trước khi xuất giúp dữ liệu luôn ổn định, tránh các lỗi hiển thị sau này.
Có thể bạn quan tâm: Định Dạng Ngày Tháng Năm Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Các phương pháp bỏ dấu trong Excel
2.1. Sử dụng hàm SUBSTITUTE kết hợp CHAR (cách thủ công)
Đây là cách cơ bản nhất nhưng lại tốn thời gian nếu bạn phải liệt kê toàn bộ ký tự có dấu. Phương pháp này thích hợp cho các trường hợp đơn giản, chỉ có một vài ký tự đặc biệt.
2.1.1. Công thức mẫu
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"á","a"),"à","a"),"ạ","a")
Bạn sẽ cần lặp lại SUBSTITUTE cho tất cả các ký tự có dấu: á, à, ả, ã, â, ấ, ầ, ậ, ă, ắ, ằ, ẵ, ặ, é, è, ẻ, ẽ, ê, ... và các ký tự đ → d.
2.1.2. Nhược điểm
- Rất dài, khó bảo trì khi thêm ký tự mới.
- Hiệu suất giảm khi áp dụng cho hàng ngàn dòng.
2.2. Tạo hàm tùy chỉnh bằng VBA (Macro)
VBA cho phép bạn viết một hàm (User Defined Function – UDF) để thực hiện việc thay thế tất cả các ký tự có dấu thành ký tự không dấu trong một dòng lệnh ngắn gọn. Đây là phương pháp mạnh mẽ và linh hoạt nhất.
2.2.1. Bước 1: Mở cửa sổ VBA
- Nhấn
Alt + F11để mở Visual Basic for Applications. - Trong Project Explorer, nhấp chuột phải vào VBAProject (TênFile.xlsx) →
Insert→Module.
2.2.2. Bước 2: Dán đoạn mã sau vào Module
Function BoDau(txt As String) As String Dim arrVietnamese As Variant Dim arrASCII As Variant Dim i As Long ' Mảng ký tự có dấu arrVietnamese = Array("á","à","ả","ã","ạ","â","ấ","ầ","ẩ","ẫ","ậ","ă","ắ","ằ","ẳ","ẵ","ặ", _ "đ","é","è","ẻ","ẽ","ẹ","ê","ế","ề","ể","ễ","ệ", _ "í","ì","ỉ","ĩ","ị", _ "ó","ò","ỏ","õ","ọ","ô","ố","ồ","ổ","ỗ","ộ","ơ","ớ","ờ","ở","ỡ","ợ", _ "ú","ù","ủ","ũ","ụ","ư","ứ","ừ","ử","ữ","ự", _ "ý","ỳ","ỷ","ỹ","ỵ", _ "Á","À","Ả","Ã","Ạ","Â","Ấ","Ầ","Ẩ","Ẫ","Ậ","Ă","Ắ","Ằ","Ẳ","Ẵ","Ặ", _ "Đ","É","È","Ẻ","Ẽ","Ẹ","Ê","Ế","Ề","Ể","Ễ","Ệ", _ "Í","Ì","Ỉ","Ĩ","Ị", _ "Ó","Ò","Ỏ","Õ","Ọ","Ô","Ố","Ồ","Ổ","Ỗ","Ộ","Ơ","Ớ","Ờ","Ở","Ỡ","Ợ", _ "Ú","Ù","Ủ","Ũ","Ụ","Ư","Ứ","Ừ","Ử","Ữ","Ự", _ "Ý","Ỳ","Ỷ","Ỹ","Ỵ") ' Mảng ký tự không dấu tương ứng arrASCII = Array("a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a", _ "d","e","e","e","e","e","e","e","e","e","e","e", _ "i","i","i","i","i", _ "o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o", _ "u","u","u","u","u","u","u","u","u","u","u", _ "y","y","y","y","y", _ "A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A", _ "D","E","E","E","E","E","E","E","E","E","E","E", _ "I","I","I","I","I", _ "O","O","O","O","O","O","O","O","O","O","O","O","O","O","O","O","O", _ "U","U","U","U","U","U","U","U","U","U","U", _ "Y","Y","Y","Y","Y") BoDau = txt For i = LBound(arrVietnamese) To UBound(arrVietnamese) BoDau = Replace(BoDau, arrVietnamese(i), arrASCII(i)) Next i
End Function
Giải thích mã:
– arrVietnamese chứa tất cả các ký tự có dấu (cả thường và hoa).
– arrASCII chứa ký tự không dấu tương ứng.
– Vòng For duyệt từng cặp ký tự và dùng Replace để thay thế trong chuỗi đầu vào txt.
2.2.3. Bước 3: Sử dụng hàm trong Excel
Sau khi lưu macro (đảm bảo file được lưu dưới dạng .xlsm), bạn có thể gọi hàm như một hàm thông thường:
=BoDau(A2)
Kết quả sẽ là chuỗi trong ô A2 đã được bỏ dấu. Bạn có thể kéo công thức xuống để áp dụng cho nhiều ô.
2.2.4. Ưu điểm
- Đơn giản: chỉ cần một công thức duy nhất.
- Hiệu suất tốt hơn so với nhiều
SUBSTITUTE. - Dễ bảo trì: nếu cần thêm ký tự, chỉ cập nhật mảng.
2.2.5. Nhược điểm
- Yêu cầu cho phép macro (có thể bị chặn trong môi trường doanh nghiệp nghiêm ngặt).
- Người dùng không quen VBA có thể cảm thấy khó tiếp cận.
2.3. Sử dụng hàm TEXTJOIN + SUBSTITUTE kết hợp LET (Excel 365)
Với Excel 365, bạn có thể tận dụng hàm LET để định nghĩa một mảng thay thế và TEXTJOIN để gộp lại. Đây là cách không cần VBA nhưng vẫn ngắn gọn.
2.3.1. Công thức mẫu
=LET( txt;A2; src;{"á","à","ả","ã","ạ","â","ấ","ầ","ẩ","ẫ","ậ","ă","ắ","ằ","ẳ","ẵ","ặ","đ","é","è","ẻ","ẽ","ẹ","ê","ế","ề","ể","ễ","ệ","í","ì","ỉ","ĩ","ị","ó","ò","ỏ","õ","ọ","ô","ố","ồ","ổ","ỗ","ộ","ơ","ớ","ờ","ở","ỡ","ợ","ú","ù","ủ","ũ","ụ","ư","ứ","ừ","ử","ữ","ự","ý","ỳ","ỷ","ỹ","ỵ","Á","À","Ả","Ã","Ạ","Â","Ấ","Ầ","Ẩ","Ẫ","Ậ","Ă","Ắ","Ằ","Ẳ","Ẵ","Ặ","Đ","É","È","Ẻ","Ẽ","Ẹ","Ê","Ế","Ề","Ể","Ễ","Ệ","Í","Ì","Ỉ","Ĩ","Ị","Ó","Ò","Ỏ","Õ","Ọ","Ô","Ố","Ồ","Ổ","Ỗ","Ộ","Ơ","Ớ","Ờ","Ở","Ỡ","Ợ","Ú","Ù","Ủ","Ũ","Ụ","Ư","Ứ","Ừ","Ử","Ữ","Ự","Ý","Ỳ","Ỷ","Ỹ","Ỵ"}; dst;{"a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","d","e","e","e","e","e","e","e","e","e","e","e","i","i","i","i","i","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","u","u","u","u","u","u","u","u","u","u","y","y","y","y","y","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","D","E","E","E","E","E","E","E","E","E","E","E","I","I","I","I","I","O","O","O","O","O","O","O","O","O","O","O","O","O","O","O","O","O","U","U","U","U","U","U","U","U","U","U","U","Y","Y","Y","Y","Y"}; LAMBDA(s; d; REPT("",0) & TEXTJOIN("",TRUE,IFERROR( SUBSTITUTE(txt,s,d), txt) ) )(src;dst)
)
Giải thích nhanh:
– src và dst là hai mảng ký tự nguồn và đích.
– LAMBDA thực hiện vòng lặp thay thế cho từng cặp.
– Kết quả trả về là chuỗi đã bỏ dấu.
Lưu ý: Công thức này khá dài và có thể gây độ trễ khi áp dụng cho rất nhiều hàng. Tuy nhiên, nó không yêu cầu VBA và hoạt động trên mọi phiên bản Excel 365/2026 có hỗ trợ
LETvàLAMBDA.
2.4. Sử dụng Power Query (Get & Transform)

Có thể bạn quan tâm: Cách Chèn Chữ Ký Vào Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Power Query là công cụ mạnh mẽ để xử lý dữ liệu trước khi đưa vào bảng tính. Bạn có thể tạo một cột tùy chỉnh với hàm M để bỏ dấu.
2.4.1. Các bước thực hiện
- Chọn dữ liệu →
Data→From Table/Range. - Trong Power Query Editor, chọn
Add Column→Custom Column. - Đặt tên cột (ví dụ:
TenKhongDau) và nhập công thức M:
= Text.Select(Tên, {"a".."z","A".."Z","0".."9"," "}) // loại bỏ ký tự không phải chữ và số
Tuy nhiên, để bỏ dấu, chúng ta cần một hàm thay thế. Thêm một hàm tùy chỉnh:
let RemoveDiacritics = (txt as text) as text => let source = {"á","à","ả","ã","ạ","â","ấ","ầ","ẩ","ẫ","ậ","ă","ắ","ằ","ẳ","ẵ","ặ","đ", "é","è","ẻ","ẽ","ẹ","ê","ế","ề","ể","ễ","ệ","í","ì","ỉ","ĩ","ị", "ó","ò","ỏ","õ","ọ","ô","ố","ồ","ổ","ỗ","ộ","ơ","ớ","ờ","ở","ỡ","ợ", "ú","ù","ủ","ũ","ụ","ư","ứ","ừ","ử","ữ","ự","ý","ỳ","ỷ","ỹ","ỵ", "Á","À","Ả","Ã","Ạ","Â","Ấ","Ầ","Ẩ","Ẫ","Ậ","Ă","Ắ","Ằ","Ẳ","Ẵ","Ặ","Đ", "É","È","Ẻ","Ẽ","Ẹ","Ê","Ế","Ề","Ể","Ễ","Ệ","Í","Ì","Ỉ","Ĩ","Ị", "Ó","Ò","Ỏ","Õ","Ọ","Ô","Ố","Ồ","Ổ","Ỗ","Ộ","Ơ","Ớ","Ờ","Ở","Ỡ","Ợ", "Ú","Ù","Ủ","Ũ","Ụ","Ư","Ứ","Ừ","Ử","Ữ","Ự","Ý","Ỳ","Ỷ","Ỹ","Ỵ"}, target = {"a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","d", "e","e","e","e","e","e","e","e","e","e","e","i","i","i","i","i", "o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o", "u","u","u","u","u","u","u","u","u","u","u","y","y","y","y","y", "A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","D", "E","E","E","E","E","E","E","E","E","E","E","I","I","I","I","I", "O","O","O","O","O","O","O","O","O","O","O","O","O","O","O","O","O", "U","U","U","U","U","U","U","U","U","U","U","Y","Y","Y","Y","Y"}, result = List.Accumulate( List.Zip({source, target}), txt, (state, pair) => Text.Replace(state, pair{0}, pair{1}) ) in result
in RemoveDiacritics
- Sau khi tạo hàm, trong
Custom Columnnhập:
= RemoveDiacritics(Tên)
Close & Loadđể đưa dữ liệu trở lại Excel.
2.4.2. Ưu điểm
- Xử lý nhanh trên bảng lớn (Power Query tối ưu hoá).
- Không thay đổi dữ liệu gốc, tạo cột mới.
- Không cần VBA và hoạt động tốt trong môi trường doanh nghiệp có chính sách macro nghiêm ngặt.
2.4.3. Nhược điểm
- Cần kiến thức cơ bản về Power Query và ngôn ngữ M.
- Khi dữ liệu thay đổi, bạn phải refresh query để cập nhật.
2.5. Sử dụng Add‑in hoặc công cụ bên ngoài (Notepad++, Python, Google Sheets)
Nếu công việc của bạn không muốn phụ thuộc vào VBA hay Power Query, bạn có thể xuất dữ liệu ra CSV, xử lý bằng công cụ khác, rồi nhập lại.
- Notepad++: dùng tính năng
Search → Replacevới biểu thức chính quy. - Python (pandas + unidecode): nhanh chóng xử lý hàng triệu bản ghi.
- Google Sheets: hàm
REGEXREPLACE+SUBSTITUTEtương tự Excel.
Mặc dù không phải “trong Excel”, nhưng các phương pháp này thường nhanh hơn khi làm việc với dữ liệu khổng lồ và cần tự động hoá qua script.
Có thể bạn quan tâm: Hàm Trung Bình Trong Excel: Cách Sử Dụng, Các Loại Hàm, Mẹo Thực Hành Và Ứng Dụng Thực Tế
3. Hướng dẫn chi tiết từng phương pháp
3.1. Thực hành với hàm VBA – BoDau
Bước 1: Kiểm tra môi trường macro
- Vào
File → Options → Trust Center → Trust Center Settings → Macro Settings. - Chọn Enable all macros (hoặc Disable all macros with notification để được hỏi khi mở file).
Bước 2: Nhập dữ liệu mẫu
| A (Tên gốc) |
|---|
| Hà Nội |
| Thành phố Hồ Chí Minh |
| Đà Nẵng |
| Cần Thơ |
| Thái Bình |
Bước 3: Áp dụng hàm
- Trong cột B, nhập
=BoDau(A2)và kéo xuống.
Kết quả:
| A (Tên gốc) | B (Tên không dấu) |
|---|---|
| Hà Nội | Ha Noi |
| Thành phố Hồ Chí Minh | Thanh pho Ho Chi Minh |
| Đà Nẵng | Da Nang |
| Cần Thơ | Can Tho |
| Thái Bình | Thai Binh |
Bước 4: Tối ưu hoá (tuỳ chọn)
Nếu muốn cùng lúc chuyển sang chữ thường và thay thế dấu cách bằng gạch nối, bạn có thể mở rộng hàm:
Function BoDauSlug(txt As String) As String Dim s As String s = BoDau(txt) ' Bỏ dấu s = LCase(s) ' Chuyển thành chữ thường s = Replace(s, " ", "-") ' Thay dấu cách bằng - BoDauSlug = s
End Function
Sau đó dùng =BoDauSlug(A2) để nhận kết quả như ha-noi, thanh-pho-ho-chi-minh, …
3.2. Thực hành với Power Query
Bước 1: Chuyển dữ liệu thành Table
- Chọn vùng dữ liệu →
Ctrl + T→ Đánh dấu My table has headers.
Bước 2: Mở Power Query
Data→From Table/Range.
Bước 3: Thêm cột tùy chỉnh
Add Column→Custom Column.- Nhập công thức:
=RemoveDiacritics(Tên).
Bước 4: Kiểm tra và tải lại
- Xem trước cột mới, nếu ổn →
Home→Close & Load.
Kết quả: Dữ liệu trong Excel sẽ có thêm cột “Tên không dấu” được tạo tự động mỗi khi bạn refresh.
3.3. Thực hành bằng hàm Excel 365 (LET + LAMBDA)
Giả sử dữ liệu ở cột A, công thức đặt ở B2:
=LET( txt;A2; src;{"á","à","ả","ã","ạ","â","ấ","ầ","ẩ","ẫ","ậ","ă","ắ","ằ","ẳ","ẵ","ặ","đ","é","è","ẻ","ẽ","ẹ","ê","ế","ề","ể","ễ","ệ","í","ì","ỉ","ĩ","ị","ó","ò","ỏ","õ","ọ","ô","ố","ồ","ổ","ỗ","ộ","ơ","ớ","ờ","ở","ỡ","ợ","ú","ù","ủ","ũ","ụ","ư","ứ","ừ","ử","ữ","ự","ý","ỳ","ỷ","ỹ","ỵ","Á","À","Ả","Ã","Ạ","Â","Ấ","Ầ","Ẩ","Ẫ","Ậ","Ă","Ắ","Ằ","Ẳ","Ẵ","Ặ","Đ","É","È","Ẻ","Ẽ","Ẹ","Ê","Ế","Ề","Ể","Ễ","Ệ","Í","Ì","Ỉ","Ĩ","Ị","Ó","Ò","Ỏ","Õ","Ọ","Ô","Ố","Ồ","Ổ","Ỗ","Ộ","Ơ","Ớ","Ờ","Ở","Ỡ","Ợ","Ú","Ù","Ủ","Ũ","Ụ","Ư","Ứ","Ừ","Ử","Ữ","Ự","Ý","Ỳ","Ỷ","Ỹ","Ỵ"}; dst;{"a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","d","e","e","e","e","e","e","e","e","e","e","e","i","i","i","i","i","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","u","u","u","u","u","u","u","u","u","u","y","y","y","y","y","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","D","E","E","E","E","E","E","E","E","E","E","E","I","I","I","I","I","O","O","O","O","O","O","O","O","O","O","O","O","O","O","O","O","O","U","U","U","U","U","U","U","U","U","U","U","Y","Y","Y","Y","Y"}; LAMBDA(s; d; TEXTJOIN("",TRUE,IFERROR( SUBSTITUTE(txt,s,d), txt) ) )(src;dst)
)
Sau khi nhập lần đầu, Excel sẽ tự lưu công thức dưới dạng LET. Khi kéo xuống, công thức sẽ tự áp dụng cho các hàng khác.
4. So sánh các phương pháp
| Phương pháp | Độ phức tạp | Yêu cầu môi trường | Hiệu suất (hàng ngàn bản ghi) | Khả năng tự động hoá | Ghi chú |
|---|---|---|---|---|---|
| SUBSTITUTE thủ công | Rất cao (công thức dài) | Không cần | Chậm khi >1.000 dòng | Thấp | Dùng cho ví dụ ngắn |
| VBA (UDF BoDau) | Trung bình | Cho phép macro, file .xlsm | Nhanh, ổn định | Cao (có thể gọi trong macro khác) | Phù hợp hầu hết môi trường |
| LET + LAMBDA (Excel 365) | Trung bình | Excel 365/2026 trở lên | Tốt, nhưng công thức lớn | Trung bình | Không cần macro |
| Power Query | Trung bình‑Cao | Excel 2026+ (có Power Query) | Rất nhanh, xử lý hàng triệu | Cao (refresh tự động) | Thích hợp cho ETL |
| Công cụ bên ngoài (Python, Notepad++) | Thấp‑Trung bình (cần kiến thức) | Không phụ thuộc Excel | Rất nhanh | Rất cao (script) | Dùng khi dữ liệu xuất khẩu lớn |
Kết luận: Nếu bạn làm việc trong môi trường công ty có chính sách cho phép macro, VBA là lựa chọn nhanh, gọn và dễ bảo trì. Nếu bạn sử dụng Excel 365 và muốn tránh macro, hãy dùng LET + LAMBDA. Khi xử lý dữ liệu lớn hoặc muốn tích hợp vào quy trình ETL, Power Query là công cụ mạnh mẽ nhất.
5. Mẹo và thủ thuật nâng cao
5.1. Bảo toàn dữ liệu gốc
- Luôn tạo cột mới để chứa kết quả (đừng ghi đè lên cột gốc).
- Nếu cần thay thế trực tiếp, sao chép cột kết quả,
Paste Special → Values, rồi xóa cột gốc.
5.2. Xử lý đồng thời các ký tự đặc biệt khác
- Đôi khi dữ liệu có dấu cách, dấu chấm, dấu gạch ngang không mong muốn.
- Bạn có thể mở rộng hàm VBA hoặc công thức
SUBSTITUTEđể xóa hoặc thay thế chúng:
s = Replace(s, " ", "-") ' Thay dấu cách bằng gạch nối
s = Replace(s, ".", "") ' Xóa dấu chấm
5.3. Tự động hoá qua Workbook_Open event
Nếu bạn muốn mọi lần mở file dữ liệu luôn được bỏ dấu tự động, thêm đoạn mã sau vào ThisWorkbook:
Private Sub Workbook_Open() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") Dim rng As Range Set rng = ws.Range("A2:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row) Dim cell As Range For Each cell In rng cell.Offset(0, 1).Value = BoDau(cell.Value) ' Kết quả vào cột B Next cell
End Sub
5.4. Kết hợp với Data Validation để ngăn nhập dấu
- Tạo Data Validation cho cột nhập dữ liệu, sử dụng công thức
=ISERROR(FIND("á",A2))… (kiểm tra từng dấu). - Tuy nhiên, cách này khó duy trì vì dấu quá nhiều. Thay vào đó, đưa hướng dẫn cho người nhập: “Nhập không dấu, hệ thống sẽ tự động chuyển sang không dấu”.
5.5. Kiểm tra dữ liệu sau khi bỏ dấu
Sau khi thực hiện, dùng công thức =EXACT(A2,B2) để so sánh chuỗi gốc và chuỗi đã bỏ dấu (nếu cần). Hoặc dùng =COUNTIF(B:B,B2)>1 để phát hiện trùng lặp sau khi chuẩn hoá.
6. Các lỗi thường gặp và cách khắc phục
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
| Ký tự vẫn còn dấu | Danh sách ký tự trong hàm chưa đầy đủ (ví dụ: “ễ” bị thiếu). | Kiểm tra và bổ sung ký tự còn thiếu vào mảng arrVietnamese/src. |
| #NAME? | Hàm VBA chưa được lưu hoặc file không ở dạng .xlsm. | Lưu file dưới dạng Excel Macro‑Enabled Workbook (.xlsm) và kiểm tra module. |
| Hiệu suất chậm | Sử dụng quá nhiều SUBSTITUTE hoặc công thức quá phức tạp trên hàng nghìn dòng. | Chuyển sang VBA hoặc Power Query. |
| Dữ liệu bị mất khi refresh | Power Query không có quyền ghi đè lên file gốc. | Đảm bảo các bước Load được cấu hình đúng (Load to Table). |
| Macro bị chặn | Cài đặt bảo mật macro ở mức “Disable all macros without notification”. | Thay đổi cài đặt trong Trust Center hoặc ký macro bằng digital signature. |
7. Tổng kết
Việc bỏ dấu trong Excel không còn là một thách thức khi bạn đã nắm vững các công cụ và kỹ thuật dưới đây:
- Hàm SUBSTITUTE – nhanh cho các trường hợp rất đơn giản.
- VBA (User Defined Function) – linh hoạt, dễ bảo trì, phù hợp với hầu hết môi trường doanh nghiệp.
- LET + LAMBDA – giải pháp không macro cho người dùng Excel 365.
- Power Query – mạnh mẽ cho dữ liệu lớn và quy trình ETL.
- Công cụ bên ngoài – Python, Notepad++, Google Sheets – khi muốn xử lý nhanh ngoài Excel.
Bạn chỉ cần lựa chọn phù hợp với quy mô dữ liệu, chính sách bảo mật của công ty và kiến thức hiện có. Khi áp dụng đúng, việc chuẩn hoá dữ liệu tiếng Việt trong Excel sẽ trở nên nhanh chóng, đúng đắn, và đáng tin cậy, giúp bạn tập trung vào các công việc phân tích, báo cáo và ra quyết định hơn là lo lắng về dấu câu.
Hãy thử ngay: Tạo một file mẫu, chèn một vài dòng dữ liệu có dấu, áp dụng hàm
BoDau(VBA) và cảm nhận sự khác biệt! Khi đã quen, bạn có thể mở rộng chức năng thành slug, mã SKU, hoặc tích hợp vào macro tự động nhập dữ liệu của mình.
Chúc bạn thành công trong việc bỏ dấu và chuẩn hoá dữ liệu trên Excel!

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