Hôm nay trong bài này, chúng tôi sẽ demo cách xóa ký tự không phải chữ số (non-alphanumeric) khỏi ô trong Excel. Đây là vấn đề thường gặp đặc biệt khi xử lý dữ liệu thô. Số, chữ và ký tự đặc biệt lẫn lộn trong ô, đôi khi cần tách riêng chữ và số. Có nhiều công thức xóa ký tự non-alphanumeric dùng mã lập trình VBA và Hàm do người dùng định nghĩa. Chúng ta sẽ học trong bài này.
Tải tệp thực hành để tập làm theo bài viết.
2 cách phù hợp xóa ký tự non-alphanumeric trong Excel
Hãy tưởng tượng nhận được dữ liệu thô cần phân tích, thấy số và chữ lẫn lộn với ký tự đặc biệt trong một cột. Để làm việc thuận tiện, cần loại bỏ chúng khỏi chuỗi. Chạy mã VBA hoặc áp dụng hàm do người dùng định nghĩa có thể giúp ích. Phần này demo các phương pháp phù hợp.
1. Chạy mã VBA xóa ký tự non-alphanumeric
Có thể dùng mã macro VBA để xóa ký tự non-alphanumeric khỏi ô trong Excel. Demo phương pháp dưới đây.
Bước 1:
- Mở cửa sổ Microsoft Visual Basic for Applications. Nhấn Alt+F11.
- Cửa sổ mới mở. Nhấn Chèn chọn Module mở module mới.
Bước 2:
- Trong module mới, chèn mã VBA xóa ký tự non-alphanumeric. Mã như sau:
Sub VBA_to_remove()
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "Non-alphanumeric text remove"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
xOut = ""
For i = 1 To Len(Rng.Value)
xTemp = Mid(Rng.Value, i, 1)
If xTemp Like "[a-z.]" Or xTemp Like "[A-Z.]" Or xTemp Like "[0-9.]" Then
xStr = xTemp
Else
xStr = ""
End If
xOut = xOut & xStr
Next i
Rng.Value = xOut
Next
End Sub
- Chạy mã nhấn F5. Chọn phạm vi và nhấn OK để hoàn tất.
- Đã xóa thành công ký tự non-alphanumeric khỏi ô.
Đọc thêm: Cách xóa ký tự không phải số khỏi ô trong Excel
2. Áp dụng Hàm do người dùng định nghĩa (UDF) xóa ký tự non-alphanumeric
Vì Excel không có hàm riêng để xóa ký tự non-alphanumeric, bạn có thể tự tạo! Đúng vậy, bạn có thể định nghĩa hàm tùy chỉnh. Cần viết mã VBA. Quy trình dưới đây. Để biết thêm về hàm tùy chỉnh, Nhấn vào đây!
Bước 1:
- Vào cửa sổ Microsoft Visual Basic for Applications nhấn Alt+F11.
- Viết mã cho UDF. Đặt tên hàm RemoveNonAlphaNumeric. Mã tạo hàm:
Function RemoveNonAlphaNumeric(xStr As String) As String
Dim xStrR As String
Dim xCh As String
Dim xStrMode As String
Dim xInt As Integer
xStrMode = "[A-Z.a-z 0-9]"
xStrR = ""
For xInt = 1 To Len(xStr)
xCh = Mid(xStr, xInt, 1)
If xCh Like xStrMode Then
xStrR = xStrR & xCh
End If
Next
RemoveNonAlphaNumeric = xStrR
End Function
Bước 2:
- Mã đã viết xong. Quay lại bảng tính gõ hàm =RemoveNonAlphaNumeric. Hàm đã được tạo.
- Áp dụng hàm ở ô C4. Hàm là:
=RemoveNonAlphaNumeric(B4)
- Nhấn ENTER lấy kết quả.
- Hàm tùy chỉnh hoạt động tốt. Áp dụng cho các ô còn lại lấy kết quả cuối.
Đọc thêm: Cách xóa ký tự trong Excel (6 phương pháp)
Lưu ý
👉 Tạo công thức tùy chỉnh có nhiều hạn chế hơn macro VBA thông thường. Không thể thay đổi cấu trúc hoặc định dạng trang tính/ô.
👉 Nếu không thấy tab Developer, kích hoạt theo hướng dẫn: Tùy chỉnh Thanh công cụ truy cập nhanh → Tùy chọn khác → Tùy chỉnh Ribbon → Developer → OK
Kết luận
Trong hướng dẫn này, chúng ta đã xem 2 cách tiếp cận khác nhau. Chào đón bình luận nếu bạn có câu hỏi. Để phản hồi ở phần bình luận. Cảm ơn đã ghé ExcelDemy. Học tập vui vẻ!
Bài viết liên quan
- Excel xóa ký tự từ bên phải (5 cách)
- Cách xóa ký tự cuối trong Excel (6 cách dễ nhất)
- Xóa gạch ngang từ số điện thoại trong Excel (4 cách)
- Cách xóa ký tự đầu trong Excel (6 phương pháp)
- Cách xóa ký tự từ bên trái trong Excel (6 cách)