Bạn đang gặp khó khăn khi xử lý dữ liệu trong Excel, cụ thể là tách số và chữ trong cùng một ô? Bài viết này sẽ hướng dẫn bạn chi tiết cách thực hiện việc này, sử dụng cả hàm Excel có sẵn và hàm tự tạo VBA, phù hợp với mọi phiên bản Excel.
Từ khóa chính: lọc số và chữ trong excel, tách số và chữ excel, excel tách số và chữ, hàm tách số và chữ excel
Trong công việc, việc nhận được dữ liệu chứa cả số và chữ trong cùng một ô là điều thường gặp. Tách riêng hai loại dữ liệu này là cần thiết để phục vụ cho việc phân tích và xử lý thông tin. Bài viết này sẽ tập trung vào các trường hợp phức tạp, khi dữ liệu số và chữ lẫn lộn không theo quy luật.
YouTube video hướng dẫn lọc số và chữ trong Excel
Tách Số, Loại Bỏ Chữ trong Excel
Sử dụng Hàm Excel (Excel 365 & 2019)
Với Excel 365 và 2019, hàm TEXTJOIN
là công cụ đắc lực giúp giải quyết vấn đề này.
Hàm TEXTJOIN trong Excel
Công thức chung:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2))), 1) *1, ""))
(Nhấn CTRL + SHIFT + Enter
sau khi nhập công thức).
Đối với Excel 365, bạn có thể dùng:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1, ""))
Ví dụ tách số trong Excel
Giải thích công thức:
Công thức hoạt động bằng cách tách từng ký tự, kiểm tra xem có phải là số hay không, rồi ghép các số lại với nhau.
Sử dụng VBA (Mọi phiên bản Excel)
Nếu bạn sử dụng phiên bản Excel cũ hơn hoặc muốn dùng VBA, hãy sử dụng hàm tự tạo sau:
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
Hoặc sử dụng Regular Expression cho hiệu suất tốt hơn với dữ liệu lớn:
Function RemoveTextRegex(str As String) As String
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "D" ' Khớp với bất kỳ ký tự nào không phải là số
RemoveTextRegex = .Replace(str, "")
End With
End Function
Cách sử dụng trong Excel: =RemoveText(A2)
hoặc =RemoveTextRegex(A2)
(A2 là ô chứa dữ liệu).
Để chuyển kết quả thành số, thêm +0
, *1
hoặc dùng hàm VALUE
.
Tách Chữ, Loại Bỏ Số trong Excel
Sử dụng Hàm Excel (Excel 365 & 2019)
Công thức cho Excel 365 và 2019:
=TRIM(TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2) )), 1) *1), MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1), "")))
(Nhấn CTRL + SHIFT + Enter
cho Excel 2019).
Đối với Excel 365:
=TRIM(TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), "")))
Ví dụ tách chữ trong Excel
Sử dụng VBA (Mọi phiên bản Excel)
Hàm VBA để loại bỏ số:
Function RemoveNumbers(str As String)
Dim sRes As String
sRes = ""
For i = 1 To Len(str)
If Not IsNumeric(Mid(str, i, 1)) Then
sRes = sRes & Mid(str, i, 1)
End If
Next i
RemoveNumbers = sRes
End Function
Hoặc phiên bản sử dụng Regular Expression:
Function RemoveNumbersRegex(str As String) As String
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "d" ' Khớp với bất kỳ ký tự số nào
RemoveNumbersRegex = .Replace(str, "")
End With
End Function
Sử dụng trong Excel: =TRIM(RemoveNumbers(A2))
hoặc =TRIM(RemoveNumbersRegex(A2))
.
Kết Luận
Bài viết đã cung cấp các phương pháp hiệu quả để lọc số và chữ trong Excel, từ hàm có sẵn đến VBA. Hy vọng những kiến thức này sẽ giúp bạn xử lý dữ liệu một cách nhanh chóng và chính xác. Hãy tìm hiểu thêm các bài viết khác trên “Thủ Thuật” để nâng cao kỹ năng Excel của bạn.
Discussion about this post