Giả sử bạn có một trang tính với nhiều dữ liệu như sau ABCD4578124YUIOH, bạn muốn xóa các chữ như ABCD, YUIOH và chỉ để lại các ký tự số trong chuỗi. Tất nhiên, bạn có thể xóa từng ký tự một, nhưng chúng mình sẽ hướng dẫn cách xóa chữ trong Excel và chỉ để lại ký tự số trong chuỗi tự động và ngược lại. Cùng xem nhé!
Để xóa các ký tự không phải số khỏi một dải ô có mã VBA, bạn vui lòng thực hiện như sau:
Bước 1: Bấm Developer -> Visual Basic để mở cửa sổ Microsoft Visual Basic cho ứng dụng. Trong cửa sổ Microsoft Visual Basic for applications, bấm Insert -> Module, sau đó sao chép và dán đoạn mã sau vào modul:
Sub RemoveNotNum()
'Updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
Dim xTitleId As String
Dim xOut As String
Dim xTemp As String
Dim xStr As String
Dim i As Integer
On Error Resume Next
xTitleId = "Excel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
On Error GoTo 0 ' Reset error handling
If WorkRng Is Nothing Then Exit Sub ' User canceled
For Each Rng In WorkRng
xOut = ""
For i = 1 To Len(Rng.Value)
xTemp = Mid(Rng.Value, i, 1)
If xTemp Like "[0-9]" Then
xStr = xTemp
Else
xStr = ""
End If
xOut = xOut & xStr
Next i
Rng.Value = xOut
Next Rng
End Sub
Bước 2: Sau đó, nhấp vào phím F5 để chạy code của bạn. Tất cả những ký tự không phải số trong phạm vi bạn chọn sẽ bị xóa như hình dưới đây:
Nếu các số có dấu thập phân, bạn có thể sử dụng VBA sau:
Sub RemoveNotNum()
' Updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
Dim xOut As String
Dim xTemp As String
Dim xStr As String
Dim i As Integer
On Error Resume Next
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", "Select Range", WorkRng.Address, Type:=8)
On Error GoTo 0 ' Reset error handling
If WorkRng Is Nothing Then Exit Sub ' User canceled
For Each Rng In WorkRng
xOut = ""
For i = 1 To Len(Rng.Value)
xTemp = Mid(Rng.Value, i, 1)
If xTemp Like "[0-9.]" Then
xStr = xTemp
Else
xStr = ""
End If
xOut = xOut & xStr
Next i
Rng.Value = xOut
Next Rng
End Sub
Bạn có thể xem kết quả như ảnh chụp màn hình dưới đây:
Bây giờ, bạn có một trang tính chứa rất nhiều thông tin dữ liệu chứa cả ký tự chữ cái và ký tự số. Bạn muốn giữ lại các ký tự chữ và loại bỏ các ký tự số cho tất cả các dữ liệu đó. Chẳng hạn như chuyển đổi James987den thành Jamesdenm, bạn phải làm thế nào?
Nếu bạn đã quen với mã VBA, bạn có thể sử dụng phương pháp sau:
Bước 1: Bấm Developer -> Visual Basic để mở cửa sổ Microsoft Visual Basic cho ứng dụng. Trong cửa sổ VBA, bấm Insert > Module, sau đó sao chép và dán đoạn mã sau vào modul:
Sub RemoveNum()
' Updateby20131129
Dim Rng As Range
Dim WorkRng As Range
Dim xOut As String
Dim xTemp As String
Dim xStr As String
Dim i As Integer
On Error Resume Next
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", "Select Range", WorkRng.Address, Type:=8)
On Error GoTo 0 ' Reset error handling
If WorkRng Is Nothing Then Exit Sub ' User canceled
For Each Rng In WorkRng
xOut = ""
For i = 1 To Len(Rng.Value)
xTemp = Mid(Rng.Value, i, 1)
If Not xTemp Like "[0-9.]" Then
xStr = xTemp
Else
xStr = ""
End If
xOut = xOut & xStr
Next i
Rng.Value = xOut
Next Rng
End Sub
Bước 2: Nhấn F5 để chạy mã, sau đó bạn sẽ thu được bảng tính chứa các chuỗi đã bị xóa bỏ số.
->
Giả sử có một dải dữ liệu, chẳng hạn như JAMES0898 # 4% ^ {}, bây giờ bạn chỉ muốn giữ lại các ký tự chữ và số (JAMES0898). Bạn có thể thực hiện một trong hai cách sau:
Để xóa cá ký tự không cần thiết ra khỏi ô, bạn có thể tạo một hàm tùy chỉnh.
Bước 1: Bấm phím tắt Alt + F11 để mở trình VBA, sau đó nhấn Insert > Module và sao chép và dán đoạn mã sau vào modul:
Function DeleteNonAlphaNumeric(xStr As String) As String
Dim xStrR As String
Dim xCh As String
Dim xStrMode As String
Dim xInt As Integer
xStrMode = "[A-Za-z0-9]" ' Chỉ số không dấu và không cần khoảng trắng
xStrR = ""
For xInt = 1 To Len(xStr)
xCh = Mid(xStr, xInt, 1)
If xCh Like xStrMode Then
xStrR = xStrR & xCh
End If
Next
DeleteNonAlphaNumeric = xStrR
End Function
Bước 2: Bây giờ quay lại trang tính, chọn một ô trống và nhập công thức sau:
=DeleteNonAlphaNumeric(B3)
Sau đó kéo xuống để áp dụng công thức này cho các ô khác. Ta thu được kết quả như sau:
Ngoài ra, bạn có thể sử dụng mã VBA ngắn sau đây để xóa các ký tự không phải chữ và số ra khỏi ô nhanh chóng:
Bước 1: Mở cửa sổ Microsoft Visual Basic trên ứng dụng Excel.
Bước 2: Bấm Insert > Module, sau đó sao chép và dán đoạn mã sau vào modul:
Sub RemoveNotAlphasNotNum()
' Updateby2014128
Dim Rng As Range
Dim WorkRng As Range
Dim xOut As String
Dim xTemp As String
Dim xStr As String
Dim i As Integer
On Error Resume Next
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", "Select Range", WorkRng.Address, Type:=8)
On Error GoTo 0 ' Reset error handling
If WorkRng Is Nothing Then Exit Sub ' User canceled
For Each Rng In WorkRng
xOut = ""
For i = 1 To Len(Rng.Value)
xTemp = Mid(Rng.Value, i, 1)
If xTemp Like "[a-zA-Z0-9.]" Then
xStr = xTemp
Else
xStr = ""
End If
xOut = xOut & xStr
Next i
Rng.Value = xOut
Next Rng
End Sub
Bước 3: Nhấn phím F5 hoặc nhấp vào nút Run để thực thi mã.
Bước 4: Sau đó, chọn một phạm vi bạn muốn xóa tất cả các ký tự không phải chữ và số trong hộp thoại bật lên và nhấp vào nút OK .
Bây giờ tất cả các ký tự không phải chữ và số đã bị xóa khỏi phạm vi đã chọn.
Như bạn thấy VBA không khó, nhưng có thể tối ưu tối đa hiệu suất thực hiện công việc và tiết kiệm thời gian. Vậy tại sao bạn không học VBA ngay để tự động hóa công việc hàng ngày hiệu quả. Bạn có thể tham khảo một số khóa học tại Gitiho sau:
Nếu bạn làm việc với các tệp đến từ một nguồn không phải Excel hoặc bạn dán thông tin từ một ứng dụng khác vào các ô trang tính, đôi khi bạn có một số ký tự không in được hoặc không hiển thị được trong trang tính của mình.
Để làm cho trang tính của bạn sạch và đẹp hơn, bạn cần xóa các ký tự không cần thiết đó. Hàm CLEAN có thể xóa tất cả các ký tự không thể in ra khỏi ô. Ví dụ, tôi có Cột C (C2: C11) cần loại bỏ các ký tự không in được. Bạn có thể làm như hướng dẫn sau:
Bước 1: Chọn một ô trống D2 liền kề với C2 và nhập:
=CLEAN(C2)
Bước 2: Nhấn phím Enter .
Bước 3: Và sau đó kéo công thức trong phạm vi ô mà bạn muốn xóa các ký tự không in được.
Hy vọng qua bài viết này, bạn đã biết cách xóa chữ trong Excel hoặc các ký tự không cần thiết khác trong chuỗi. Để đọc thêm những mẹo và thủ thuật khác trong Excel bạn hãy truy cập Blog Excel của Gitiho nhé.
Gitiho chân thành cảm ơn bạn đọc!
Khóa học phù hợp với bất kỳ ai đang muốn tìm hiểu lại Excel từ con số 0. Giáo án được Gitiho cùng giảng viên thiết kế phù hợp với công việc thực tế tại doanh nghiệp, bài tập thực hành xuyên suốt khóa kèm đáp án và hướng dẫn giải chi tiết. Tham khảo ngay bên dưới!