Loại bỏ các ký tự không in một cách thông minh (Microsoft Excel)
Nếu bạn làm việc với các tệp bắt nguồn từ một nguồn không phải Excel, đôi khi bạn có thể kết thúc bằng các ký tự trong ô của mình mà Excel không biết cách hiển thị đúng. Ví dụ: bạn có thể có tệp văn bản được phân tách bằng dấu phẩy được tạo bởi phần mềm kế toán của công ty bạn và bạn tải tệp đó vào Excel. Trong một số ô, bạn có thể nhận thấy rằng có các ô nhỏ. Chúng đại diện cho các ký tự không in được. Excel sẽ hiển thị các hộp nhỏ để bạn biết ký tự ở đó, mặc dù nó không thể được hiển thị hoặc in.
Để loại bỏ những ký tự này, bạn hãy thử sử dụng tính năng Tìm và Thay thế của Excel. Hãy thử các bước sau:
-
Trong ô chứa một trong các hộp nhỏ, đánh dấu hộp đó và nhấn Ctrl + C. Thao tác này sao chép ký tự vào Clipboard.
-
Chọn Thay thế từ menu Chỉnh sửa hoặc nhấn Ctrl + H. Excel hiển thị tab Thay thế của hộp thoại Tìm và Thay thế. (Xem Hình 1.)
-
Với điểm chèn trong hộp Tìm gì, nhấn Ctrl + V. Thao tác này sẽ dán nội dung của Bảng tạm (ký tự vi phạm) vào hộp Tìm gì. Ký tự rất có thể sẽ không giống ô nhỏ bạn đã chọn và sao chép ở bước 1.
-
Nếu không có gì được dán ở bước 3, thì hãy đóng hộp thoại và thử lại các bước. Nếu không có gì vẫn được dán, thì bạn sẽ không thể sử dụng Tìm và Thay thế để loại bỏ các ký tự không in được và bạn có thể bỏ qua phần còn lại của các bước này.
-
Nếu bạn chỉ muốn xóa các ký tự, hãy đảm bảo rằng không có gì trong hộp Replace With. Nếu bạn muốn thay thế các ký tự bằng dấu cách, hãy đặt một dấu cách vào hộp Thay thế Bằng.
-
Nhấp vào Thay thế Tất cả.
Cách tiếp cận này có thể hiệu quả hoặc không, chủ yếu phụ thuộc vào Excel và liệu nó có cho phép bạn sao chép chính xác ký tự vi phạm ở bước 1. Nếu nó hoạt động, thì bạn đã học được một kỹ thuật có giá trị để loại bỏ các ký tự xấu. Nếu nó không hiệu quả, thì bạn nên thử một cách tiếp cận khác.
Một điều cần thử là sử dụng Word trong các hoạt động “dọn dẹp” của bạn. Sao chép dữ liệu từ Excel sang tài liệu Word (dán dưới dạng văn bản thông thường), sau đó thay thế các ký tự vi phạm. Sau đó, bạn có thể dán dữ liệu trở lại Excel. Một số người báo cáo rằng họ nhận được chính xác kết quả họ muốn bằng cách sử dụng phương pháp khứ hồi này để làm việc với dữ liệu.
Tất nhiên, bạn có thể sử dụng macro để loại bỏ các ký tự vi phạm.
Không quá khó để tạo phiên bản trang tính CLEAN của riêng bạn, thay vì chỉ xóa các ký tự không in được, hãy thay thế chúng bằng dấu cách. Hãy xem xét macro ví dụ sau:
Function ReplaceClean1(sText As String, Optional sSubText As String = " ") Dim J As Integer Dim vAddText vAddText = Array(Chr(129), Chr(141), Chr(143), Chr(144), Chr(157)) For J = 1 To 31 sText = Replace(sText, Chr(J), sSubText) Next For J = 0 To UBound(vAddText) sText = Replace(sText, vAddText(J), sSubText) Next ReplaceClean1 = sText End Function
Bạn sử dụng hàm này theo cách sau trong trang tính của mình:
=ReplaceClean1(B14)
Trong trường hợp này, tất cả các ký tự không in trong ô B14 được thay thế bằng khoảng trắng. Nếu bạn muốn các ký tự được thay thế bằng ký tự khác, chỉ cần cung cấp văn bản để thay thế bằng. Ví dụ sau thay thế các ký tự không in được bằng dấu gạch ngang:
=ReplaceClean1(A1,"-")
Cách sử dụng sau chỉ đơn giản là loại bỏ các ký tự không in được, giống như hàm CLEAN:
=ReplaceClean1(A1,"")
Nếu bạn nhìn lại macro ReplaceClean1 được trình bày trước đó, bạn sẽ thấy rằng nó sử dụng chức năng Replace. Hàm VBA này không có sẵn trong tất cả các phiên bản VBA được sử dụng với các phiên bản Excel khác nhau. Nếu bạn thử macro và bạn gặp lỗi trên một trong các dòng sử dụng chức năng Replace, thì hãy sử dụng phiên bản macro ReplaceClean này để thay thế:
Function ReplaceClean2(sText As String, Optional sSubText As String = " ") Dim J As Integer Dim vAddText Dim aWF As WorksheetFunction Set aWF = Application.WorksheetFunction vAddText = Array(Chr(129), Chr(141), Chr(143), Chr(144), Chr(157)) For J = 1 To 31 sText = aWF.Substitute(sText, Chr(J), sSubText) Next For J = 0 To UBound(vAddText) sText = aWF.Substitute(sText, vAddText(J), sSubText) Next ReplaceClean2 = sText Set aWF = Nothing End Function
_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 (2947) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: