Có thể bạn quan tâm: Tính Độ Lệch Chuẩn Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Giới thiệu
Trong môi trường làm việc văn phòng, Excel luôn là công cụ không thể thiếu để quản lý dữ liệu, thống kê và phân tích. Khi dữ liệu đến từ nguồn tiếng Việt, một vấn đề thường gặp là việc nhập các ký tự có dấu trong bảng tính. Việc làm sạch dữ liệu, chuẩn hoá ký tự, hoặc khi cần so sánh chuỗi mà không quan tâm đến dấu, thường yêu cầu “bỏ dấu” tiếng Việt.
Nội dung bài viết này sẽ cung cấp một loạt các phương pháp, từ công thức đơn giản, tính năng built‑in của Excel, cho tới macro VBA và add‑in chuyên dụng, giúp bạn có thể bỏ dấu tiếng Việt một cách nhanh nhất và chính xác nhất. Bạn cũng sẽ tìm thấy những mẹo nhỏ, lưu ý khi làm việc với dữ liệu tiếng Việt, tránh những lỗi phổ biến và tối ưu hiệu suất khi xử lý dữ liệu lớn.
Có thể bạn quan tâm: Đếm Ô Trống Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Tại sao cần bỏ dấu trong Excel?
Tìm kiếm và lọc dữ liệu
Khi người dùng nhập “Nguyễn” hay “Nguyen”, nếu không bỏ dấu dữ liệu sẽ bị chia tách thành hai nhóm, làm giảm tính chính xác của tìm kiếm.So sánh và sắp xếp chuỗi
Để sắp xếp bảng dữ liệu theo chữ cái mà không phân biệt dấu, cần chuyển các ký tự có dấu thành dạng không dấu.Tương thích hệ thống
Nhiều hệ thống báo cáo, ERP, CRM không hỗ trợ ký tự tiếng Việt, nên dữ liệu cần được chuẩn hoá.Phân tích dữ liệu
Khi thực hiện phân tích thống kê, “bỏ dấu” giúp thống nhất định danh, tránh trùng lặp không đáng có.
Có thể bạn quan tâm: Cách Bỏ Mật Khẩu Trong Excel 2007: Hướng Dẫn Chi Tiết Từ A Đến Z
3. Phương pháp 1: Sử dụng hàm SUBSTITUTE kết hợp với CHAR trong Excel
Phương pháp này đơn giản, không cần lập trình. Tuy nhiên, nó tốn nhiều công thức nếu có nhiều ký tự cần thay thế.
3.1 Chuẩn bị danh sách ký tự có dấu và không dấu
| Ký tự có dấu | Ký tự không dấu |
|---|---|
| à | a |
| á | a |
| ả | a |
| ã | a |
| ạ | a |
| ă | a |
| ắ | a |
| ằ | a |
| ẳ | a |
| ẵ | a |
| ặ | a |
| â | a |
| ấ | a |
| ầ | a |
| ẩ | a |
| ẫ | a |
| ậ | a |
| … | … |
(Tương tự cho các chữ cái khác: ơ, ư, ê, i, o, u, y, e, c, d…)
Lưu ý: Excel không hỗ trợ trực tiếp các ký tự Unicode trong hàm
SUBSTITUTEnếu không nhập vào cell. Bạn cần nhập từng ký tự vào cell riêng rồi tham chiếu.
3.2 Công thức mẫu
Giả sử ô A1 chứa chuỗi “Hà Nội”. Bên trong công thức (đặt vào B1), ta viết:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"à","a"),"á","a"),"ả","a")
Cứ tiếp tục cho tới hết danh sách. Đối với dữ liệu lớn, công thức này sẽ rất dài và khó bảo trì.
3.3 Giới hạn
- Hiệu suất: Khi có hàng nghìn dòng, công thức có thể làm chậm.
- Bảo trì: Mỗi khi thêm ký tự mới, cần chỉnh sửa công thức.
4. Phương pháp 2: Hàm VBA (Visual Basic for Applications)
VBA cho phép viết một hàm tùy chỉnh, có thể xử lý toàn bộ chuỗi một cách nhanh chóng và dễ bảo trì.
4.1 Tạo hàm RemoveVietnameseTone

Có thể bạn quan tâm: Bài Tập Excel Lớp 7: Hướng Dẫn Chi Tiết, Bài Giải Từng Bước Và Những Lưu Ý Quan Trọng
- Mở Excel, nhấn
ALT + F11để vào cửa sổ VBA. - Vào
Insert > Module. - Dán đoạn mã sau:
Function RemoveVietnameseTone(str As String) As String Dim i As Long Dim dic As Object Set dic = CreateObject("Scripting.Dictionary") ' Thêm các ký tự có dấu và không dấu dic("à") = "a": dic("á") = "a": dic("ả") = "a": dic("ã") = "a": dic("ạ") = "a" dic("ă") = "a": dic("ắ") = "a": dic("ằ") = "a": dic("ẳ") = "a": dic("ẵ") = "a": dic("ặ") = "a" dic("â") = "a": dic("ấ") = "a": dic("ầ") = "a": dic("ẩ") = "a": dic("ẫ") = "a": dic("ậ") = "a" dic("đ") = "d" dic("è") = "e": dic("é") = "e": dic("ẻ") = "e": dic("ẽ") = "e": dic("ẹ") = "e" dic("ê") = "e": dic("ế") = "e": dic("ề") = "e": dic("ể") = "e": dic("ễ") = "e": dic("ệ") = "e" dic("ì") = "i": dic("í") = "i": dic("ỉ") = "i": dic("ĩ") = "i": dic("ị") = "i" dic("ò") = "o": dic("ó") = "o": dic("ỏ") = "o": dic("õ") = "o": dic("ọ") = "o" dic("ô") = "o": dic("ố") = "o": dic("ồ") = "o": dic("ổ") = "o": dic("ỗ") = "o": dic("ộ") = "o" dic("ơ") = "o": dic("ớ") = "o": dic("ờ") = "o": dic("ở") = "o": dic("ỡ") = "o": dic("ợ") = "o" dic("ù") = "u": dic("ú") = "u": dic("ủ") = "u": dic("ũ") = "u": dic("ụ") = "u" dic("ư") = "u": dic("ứ") = "u": dic("ừ") = "u": dic("ử") = "u": dic("ữ") = "u": dic("ự") = "u" dic("ỳ") = "y": dic("ý") = "y": dic("ỷ") = "y": dic("ỹ") = "y": dic("ỵ") = "y" dic("đ") = "d" dic("À") = "A": dic("Á") = "A": dic("Ả") = "A": dic("Ã") = "A": dic("Ạ") = "A" dic("Ă") = "A": dic("Ắ") = "A": dic("Ằ") = "A": dic("Ẳ") = "A": dic("Ẵ") = "A": dic("Ặ") = "A" dic("Â") = "A": dic("Ấ") = "A": dic("Ầ") = "A": dic("Ẩ") = "A": dic("Ẫ") = "A": dic("Ậ") = "A" dic("Đ") = "D" dic("È") = "E": dic("É") = "E": dic("Ẻ") = "E": dic("Ẽ") = "E": dic("Ẹ") = "E" dic("Ê") = "E": dic("Ế") = "E": dic("Ề") = "E": dic("Ể") = "E": dic("Ễ") = "E": dic("Ệ") = "E" dic("Ì") = "I": dic("Í") = "I": dic("Ỉ") = "I": dic("Ĩ") = "I": dic("Ị") = "I" dic("Ò") = "O": dic("Ó") = "O": dic("Ỏ") = "O": dic("Õ") = "O": dic("Ọ") = "O" dic("Ô") = "O": dic("Ố") = "O": dic("Ồ") = "O": dic("Ổ") = "O": dic("Ỗ") = "O": dic("Ộ") = "O" dic("Ơ") = "O": dic("Ớ") = "O": dic("Ờ") = "O": dic("Ở") = "O": dic("Ỡ") = "O": dic("Ợ") = "O" dic("Ù") = "U": dic("Ú") = "U": dic("Ủ") = "U": dic("Ũ") = "U": dic("Ụ") = "U" dic("Ư") = "U": dic("Ứ") = "U": dic("Ừ") = "U": dic("Ử") = "U": dic("Ữ") = "U": dic("Ự") = "U" dic("Ỳ") = "Y": dic("Ý") = "Y": dic("Ỷ") = "Y": dic("Ỹ") = "Y": dic("Ỵ") = "Y" Dim result As String result = "" For i = 1 To Len(str) Dim ch As String ch = Mid(str, i, 1) If dic.Exists(ch) Then result = result & dic(ch) Else result = result & ch End If Next i RemoveVietnameseTone = result
End Function
- Đóng cửa sổ VBA và quay lại Excel.
- Sử dụng hàm trong ô:
=RemoveVietnameseTone(A1).
4.2 Ưu điểm
- Dễ bảo trì: Thêm ký tự mới chỉ cần chỉnh sửa dictionary.
- Hiệu năng: Rất nhanh, ngay cả với hàng ngàn dòng.
- Tùy biến: Có thể điều chỉnh mapping, ví dụ giữ nguyên chữ hoa, chuyển thành chữ thường, v.v.
4.3 Hạn chế
- Cần bật macro; trong môi trường bảo mật cao, macro có thể bị chặn.
- Người dùng không thân quen với VBA có thể gặp khó khăn.
5. Phương pháp 3: Sử dụng hàm TEXTJOIN + CHOOSE (Excel 365)
Nếu bạn đang dùng Excel 365, có thể tận dụng TEXTJOIN và CHOOSE để tạo một công thức “tự động” thay thế.
5.1 Chuẩn bị
- Ở một vùng dữ liệu, tạo bảng mapping: cột A là ký tự có dấu, cột B là ký tự không dấu. Ví dụ:
| A | B |
|---|---|
| à | a |
| á | a |
| ả | a |
| … | … |
5.2 Công thức
Giả sử bảng mapping nằm trong Sheet2!A1:B50, ô A1 chứa chuỗi gốc. Sử dụng công thức:
=TEXTJOIN("",TRUE,IFERROR(CHOOSE(MATCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),Sheet2!$A$1:$A$50,0),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))
Chú ý: Đây là công thức mảng, nên nhấn
Ctrl+Shift+Enternếu không sử dụng Excel 365.
5.3 Ưu điểm
- Không cần macro.
- Dễ dàng cập nhật bảng mapping.
5.4 Hạn chế
- Công thức phức tạp, khó đọc, dễ nhầm lẫn.
- Hiệu suất thấp hơn so với VBA khi xử lý dữ liệu lớn.
6. Phương pháp 4: Sử dụng Add‑in “Remove Diacritics” (Add‑in miễn phí)
Nhiều nhà phát triển cung cấp Add‑in cho Excel giúp bỏ dấu một cách nhanh chóng.
6.1 Lấy Add‑in
- Tìm “Remove Diacritics Excel Add‑in” trên Google hoặc trên trang Office Add‑ins.
- Tải về, cài đặt.
6.2 Sử dụng
- Chọn cột cần xử lý.
- Nhấn vào tab Add‑in, chọn “Remove Diacritics”.
- Add‑in sẽ tự động thay thế ký tự có dấu bằng ký tự không dấu.
6.3 Ưu điểm
- Nhanh chóng: 1 click.
- Không cần viết công thức: Dễ dàng cho người dùng không chuyên.
6.4 Hạn chế
- Phụ thuộc vào nguồn Add‑in, có thể bị update, hết hạn hoặc cấm.
- Độ tin cậy tùy vào nhà phát triển.
7. Mẹo nhỏ khi làm việc với dữ liệu tiếng Việt
| Mẹo | Mô tả |
|---|---|
| Kiểm tra encoding | Khi nhập dữ liệu từ CSV, hãy chắc chắn file được lưu dưới UTF‑8. |
Dùng hàm LOWER / UPPER | Nếu muốn chuẩn hoá chữ hoa/chữ thường, kết hợp LOWER(RemoveVietnameseTone(A1)). |
Sử dụng FILTER và SORT | Sau khi bỏ dấu, bạn có thể dùng FILTER để lọc dữ liệu và SORT để sắp xếp theo ký tự không dấu. |
| Kiểm tra lỗi | Đôi khi ký tự “đ” có thể bị bỏ qua nếu mapping thiếu. |
| Bảo vệ macro | Nếu dùng VBA, hãy lưu workbook dưới định dạng .xlsm. |
8. So sánh các phương pháp
| Phương pháp | Thời gian thiết lập | Hiệu suất | Độ phức tạp | Phù hợp với |
|---|---|---|---|---|
| SUBSTITUTE | Rất nhanh (đơn giản, nhưng công thức dài) | Thấp (đối với dữ liệu lớn) | Trung bình | Dữ liệu ngắn, ít ký tự |
| VBA | Trung bình (cần viết code) | Cao | Thấp | Dữ liệu lớn, cần tự động |
| TEXTJOIN+CHOOSE | Trung bình | Trung bình | Cao | Người dùng Excel 365, không muốn macro |
| Add‑in | Rất nhanh | Trung bình | Thấp | Người dùng không chuyên, cần giải pháp nhanh |
9. Kết luận
Việc bỏ dấu tiếng Việt trong Excel là một bước quan trọng để làm sạch và chuẩn hoá dữ liệu. Tùy theo môi trường làm việc, quy mô dữ liệu và trình độ người dùng, bạn có thể chọn phương pháp phù hợp nhất:
- Nếu bạn có quyền sử dụng macro và cần xử lý hàng nghìn dòng, hãy dùng VBA – nhanh, dễ bảo trì.
- Nếu không muốn macro, nhưng dùng Excel 365, TEXTJOIN+CHOOSE là lựa chọn thực tế.
- Đối với thao tác nhanh, một Add‑in miễn phí cũng có thể đáp ứng nhu cầu.
Hãy nhớ kiểm tra kỹ độ chính xác của mapping, đặc biệt là các ký tự đặc biệt như “đ”, “ơ”, “ư”. Khi dữ liệu được chuẩn hoá, các công việc phân tích, báo cáo, tìm kiếm sẽ trở nên chính xác và hiệu quả hơn nhiều.
Chúc bạn thành công trong việc làm sạch dữ liệu tiếng Việt 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ẻ.
