Thoát khỏi mọi thứ ngoại trừ số (Microsoft Excel)
Linda có một cột chứa các ký tự chữ và số. Cô ấy cần giữ lại các ký tự số và xóa các ký tự chữ cái. Ví dụ: một ô có thể chứa 10003E111 và cô ấy muốn kết thúc bằng 10003111.
Có một số cách bạn có thể tiếp cận vấn đề này. Tuy nhiên, trước khi tiếp tục bất kỳ giải pháp nào, bạn nên đảm bảo rằng bạn không cố gắng thay đổi thứ gì đó chưa thực sự bị hỏng. Ví dụ: bạn sẽ muốn đảm bảo rằng chữ “E” xuất hiện trong số không phải là một phần của định dạng số — nói cách khác, là ký hiệu của lũy thừa. Nếu đúng như vậy, thì bạn không thực sự muốn xóa ký tự vì nó sẽ làm thay đổi bản chất của số cơ bản.
Nếu bạn xác định rằng các ký tự không phải là một phần của định dạng số, thì trước tiên bạn có thể thử sử dụng công thức để xóa các ký tự alpha.
Nếu các giá trị bạn muốn thay đổi nằm trong cột A, bạn có thể nhập công thức sau vào cột B:
=SUM(MID(0&A1,LARGE(INDEX(ISNUMBER(--MID(A1, ROW($1:$99),1))ROW($1:$99),),ROW($1:$99))+1, 1)10^ROW($1:$99)/10)
Đảm bảo bạn nhập công thức này dưới dạng công thức mảng bằng cách nhấn Ctrl + Shift + Enter. Kết quả là cột B chứa các giá trị từ cột A, không có ký tự alpha. Bạn có thể sử dụng Dán Đặc biệt để sao chép thông tin từ cột B sang một cột khác để bạn nhận được các giá trị thực thay vì kết quả công thức.
Cách tiếp cận này có thể hiệu quả khi sử dụng ngắn hạn trên một sổ làm việc, nhưng nếu bạn cần thực hiện loại xử lý dữ liệu này thường xuyên hơn thì bạn sẽ muốn tạo một hàm do người dùng xác định để thực hiện việc xử lý. Đây là một ví dụ:
Function OnlyNums(sWord As String) Dim sChar As String Dim x As Integer Dim sTemp As String sTemp = "" For x = 1 To Len(sWord) sChar = Mid(sWord, x, 1) If Asc(sChar) >= 48 And _ Asc(sChar) <= 57 Then sTemp = sTemp & sChar End If Next OnlyNums = Val(sTemp) End Function
Bạn sử dụng hàm này bằng cách gọi nó từ bên trong một ô trang tính:
=OnlyNums(A1)
Hàm trả về một giá trị số. Nếu bạn muốn tạo một macro ngắn hơn nữa để thực hiện quá trình xử lý, hãy xem xét những điều sau:
Function StripChar(aText As String) Dim I As Integer StripChar = "" For I = 1 To Len(aText) aChar = Mid(aText, I, 1) Select Case aChar Case "0" To "9" StripChar = StripChar & aChar End Select Next End Function
Để sử dụng chức năng này, hãy sử dụng một trong hai cách sau trong trang tính của bạn:
=STRIPCHAR(A1) =VALUE(STRIPCHAR(A1))
Đầu tiên trả về một chuỗi văn bản bao gồm các chữ số, thứ hai trả về phiên bản số của chuỗi đó.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (11750) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.
Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: