Cách dùng hàm tự tạo trong VBA để bỏ chữ khỏi số
Nếu bạn đang sử dụng một phiên bản
Excel cũ hơn hoặc các công thức bên trên quá khó nhớ để áp dụng, và bạn sẵn sàng sử dụng
VBA trong
Excel, thì chúng ta có thể sử dụng ngôn ngữ lập trình
VBA trong
Excel để có thể xử lý vấn đề tách chữ ra khỏi số này:
Function RemoveText(str As String)
Dim sRes As String
sRes = ""
For i = 1 To Len(str)
If True = IsNumeric(Mid(str, i, 1)) Then
sRes = sRes & Mid(str, i, 1)
End If
Next i
RemoveText = sRes
End Function
Ngoài đoạn code phía trên sử dụng vòng lặp trong
VBA, chúng ta còn có thể sử dụng "
Regular Expression" trong
VBA để giải quyết vấn đề này như sau.
Logic là chúng ta sẽ loại bỏ toàn bộ các ký tự không phải là các ký tự số từ 0 tới 9.
Function RemoveText(str As String) As String
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "[^0-9]"
RemoveText = .Replace(str, "")
End With
End Function
# Cách sử dụng trong file Excel cũng rất đơn giản như sau:
=RemoveText(A1)
với
A1 là ô chứa dữ liệu cần xử lý.
Lưu ý:
Cả cách dùng hàm Excel và cách dùng hàm tự tạo trong VBA đều cho kết quả là chuỗi “234”, để chuyển thành số, chúng ta có thể thực hiện một trong những cách sau đây:
=RemoveText(A1) + 0
=RemoveText(A1) * 1
=VALUE(RemoveText(A1))
Cách lọc bỏ số, giữ lại chữ trong ô dữ liệu của Excel
Sau đây là đoạn
code để bạn có thể thực hiện xử lý dữ liệu - loại bỏ số ra khỏi chữ:
Function RemoveNumbers(str As String)
Dim sRes As String
sRes = ""
For i = 1 To Len(str)
If False = IsNumeric(Mid(str, i, 1)) Then
sRes = sRes & Mid(str, i, 1)
End If
Next i
RemoveNumbers = sRes
End Function
Chúng ta cũng có thể sử dụng "
Regular Expression" trong
VBA.
Function RemoveNumbers(str As String) As String
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "[0-9]"
RemoveNumbers2 = .Replace(str, "")
End With
End Function
Trong trường hợp bạn cần xử lý nhiều dữ liệu, thì đoạn
code sử dụng "
Regular Expression" sẽ hoạt động nhanh hơn.
# Cách sử dụng trong một Worksheet Excel như sau:
=TRIM(RemoveNumbers(A1))
Hi vọng qua bài chia sẻ này, các bạn đã biết thêm một kỹ thuật rất hữu ích dùng để xử lý dữ liệu trong
Excel VBA.