Mục lục
Trong bài viết này, bạn sẽ tìm hiểu cách xóa các ký tự cụ thể khỏi chuỗi văn bản và xóa các ký tự không mong muốn khỏi nhiều ô cùng một lúc.
Khi nhập dữ liệu vào Excel từ một nơi khác, rất nhiều ký tự đặc biệt có thể di chuyển đến trang tính của bạn. Điều khó chịu hơn nữa là một số ký tự không nhìn thấy được, điều này tạo ra khoảng trắng thừa trước, sau hoặc bên trong chuỗi văn bản. Hướng dẫn này cung cấp các giải pháp cho tất cả những vấn đề này, giúp bạn không gặp rắc rối khi phải xem qua từng ô dữ liệu và xóa các ký tự không mong muốn bằng tay.
Xóa ký tự đặc biệt khỏi ô Excel
Để xóa một ký tự cụ thể khỏi một ô, hãy thay thế ký tự đó bằng một chuỗi trống bằng cách sử dụng hàm SUBSTITUTE ở dạng đơn giản nhất:
SUBSTITUTE( cell, char, "")Ví dụ: để xóa một dấu chấm hỏi khỏi A2, công thức trong B2 là:
=SUBSTITUTE(A2, "?", "")
Để xóa một ký tự không có trên bàn phím của bạn, bạn có thể sao chép/dán ký tự đó vào công thức từ ô ban đầu.
Ví dụ: đây là cách bạn có thể loại bỏ dấu hỏi ngược:
=SUBSTITUTE(A2, "¿", "")
Nhưng nếu một ký tự không mong muốn không nhìn thấy được hoặc không sao chép chính xác, bạn sẽ đưa ký tự đó vào công thức như thế nào? Chỉ cần tìm số mã của nó bằng cách sử dụng hàm CODE.
Trong trường hợp của chúng tôi, ký tự không mong muốn ("¿") xuất hiện cuối cùng trong ô A2, vì vậy chúng tôi đang sử dụng kết hợpcủa các hàm CODE và RIGHT để truy xuất giá trị mã duy nhất của nó, là 191:
=CODE(RIGHT(A2))
Sau khi bạn nhận được mã của ký tự, hãy cung cấp CHAR tương ứng hàm theo công thức chung ở trên. Đối với tập dữ liệu của chúng tôi, công thức như sau:
=SUBSTITUTE(A2, CHAR(191),"")
Lưu ý. Hàm SUBSTITUTE phân biệt chữ hoa chữ thường , nghĩa là nó coi chữ thường và chữ hoa là các ký tự khác nhau. Hãy ghi nhớ điều đó nếu ký tự không mong muốn của bạn là một chữ cái.
Xóa nhiều ký tự khỏi chuỗi
Trong một trong các bài viết trước, chúng ta đã xem xét cách xóa các ký tự cụ thể khỏi chuỗi trong Excel bằng cách lồng một số hàm SUBSTITUTE vào một hàm khác. Có thể sử dụng phương pháp tương tự để loại bỏ hai hoặc nhiều ký tự không mong muốn trong một lần:
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( cell , char1 , ""), char2 , ""), char3 , "")Ví dụ: để xóa dấu chấm than và dấu chấm hỏi thông thường cũng như dấu đảo ngược khỏi chuỗi văn bản trong A2, hãy sử dụng công thức sau:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")
Có thể thực hiện tương tự với sự trợ giúp của hàm CHAR, trong đó 161 là mã ký tự cho "¡" và 191 là mã ký tự cho "¿":
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")
Các hàm SUBSTITUTE lồng nhau hoạt động tốt với số lượng ký tự hợp lý nhưng nếu bạn có hàng tá ký tự cần xóa, công thức sẽ trở nên quá dài và khó quản lý. Ví dụ tiếp theo minh họa mộtgiải pháp nhỏ gọn và tinh tế hơn.
Xóa tất cả các ký tự không mong muốn cùng một lúc
Giải pháp này chỉ hoạt động trong Excel dành cho Microsoft 365
Có thể bạn đã biết, Excel 365 có một hàm đặc biệt cho phép bạn tạo các hàm của riêng mình, kể cả những hàm tính toán đệ quy. Chức năng mới này được đặt tên là LAMBDA và bạn có thể tìm thấy đầy đủ chi tiết về nó trong hướng dẫn được liên kết ở trên. Dưới đây, tôi sẽ minh họa khái niệm này bằng một vài ví dụ thực tế.
Hàm LAMBDA tùy chỉnh để xóa các ký tự không mong muốn như sau:
=LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))
Để có thể sử dụng chức năng này trong trang tính của bạn, trước tiên bạn cần đặt tên cho nó. Đối với điều này, hãy nhấn Ctrl + F3 để mở Trình quản lý tên , sau đó xác định Tên mới theo cách này:
- Trong Tên , nhập tên hàm: RemoveChars .
- Đặt phạm vi thành Workbook .
- Trong Refers to , dán công thức ở trên.
- Tùy chọn, nhập mô tả của các tham số vào hộp Nhận xét . Các tham số sẽ được hiển thị khi bạn nhập công thức vào một ô.
- Nhấp vào OK để lưu hàm mới của bạn.
Để biết hướng dẫn chi tiết, vui lòng xem Cách đặt tên cho hàm LAMBDA tùy chỉnh.
Sau khi hàm có tên, bạn có thể tham chiếu hàm đó giống như bất kỳ công thức gốc nào.
Từ quan điểm của người dùng , cú pháp của hàm tùy chỉnh của chúng tôi đơn giản nhưcái này:
RemoveChars(chuỗi, ký tự)Ở đâu:
- Chuỗi - là chuỗi gốc hoặc tham chiếu đến ô/phạm vi chứa chuỗi ( s).
- Ký tự - ký tự cần xóa. Có thể được biểu thị bằng một chuỗi văn bản hoặc tham chiếu ô.
Để thuận tiện, chúng tôi nhập các ký tự không mong muốn vào một số ô, chẳng hạn như D2. Để xóa các ký tự đó khỏi A2, công thức là:
=RemoveChars(A2, $D$2)
Để công thức hoạt động chính xác, vui lòng lưu ý những điều sau:
- Trong D2 , các ký tự được liệt kê không có khoảng trắng, trừ khi bạn cũng muốn loại bỏ khoảng trắng.
- Địa chỉ của ô chứa các ký tự đặc biệt được khóa bằng ký hiệu $ ($D$2) để ngăn không cho tham chiếu thay đổi khi xử lý chuyển công thức xuống các ô bên dưới.
Sau đó, chúng ta chỉ cần kéo công thức xuống và xóa tất cả các ký tự được liệt kê trong D2 khỏi các ô từ A2 đến A6:
Để xóa nhiều ô bằng một công thức duy nhất, hãy cung cấp phạm vi A2:A6 cho đối số thứ nhất:
=RemoveChars(A2:A6, D2)
Vì công thức chỉ được nhập vào ô trên cùng, nên bạn không cần lo lắng về việc khóa tọa độ ô - tham chiếu tương đối (D2) hoạt động tốt trong trường hợp này. Và do hỗ trợ mảng động, công thức sẽ tự động tràn vào tất cả các ô được tham chiếu:
Xóa bộ ký tự được xác định trước
Để xóa bộ ký tự được xác định trước các ký tự từ nhiều ô, bạn có thể tạomột LAMBDA khác gọi hàm RemoveChars chính và chỉ định các ký tự không mong muốn trong tham số thứ 2. Ví dụ:
Để xóa ký tự đặc biệt , chúng tôi đã tạo một hàm tùy chỉnh có tên RemoveSpecialChars :
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
To xóa số khỏi chuỗi văn bản, chúng tôi đã tạo thêm một hàm có tên RemoveNumbers :
=LAMBDA(string, RemoveChars(string, "0123456789"))
Cả hai hàm trên đều cực kỳ dễ dàng để sử dụng vì chúng chỉ yêu cầu một đối số - chuỗi gốc.
Để loại bỏ ký tự đặc biệt khỏi A2, công thức là:
=RemoveSpecialChars(A2)
Để chỉ xóa ký tự số:
=RemoveNumbers(A2)
Cách thức hoạt động của chức năng này:
Về bản chất, hàm RemoveChars lặp qua danh sách ký tự và xóa từng ký tự một. Trước mỗi lời gọi đệ quy, hàm IF sẽ kiểm tra các ký tự còn lại. Nếu chuỗi chars không trống (chars""), hàm sẽ tự gọi. Ngay sau khi ký tự cuối cùng được xử lý, công thức sẽ trả về chuỗi ở dạng hiện tại và thoát ra.
Để biết thông tin chi tiết về công thức, vui lòng xem LAMBDA đệ quy để xóa các ký tự không mong muốn.
Xóa các ký tự đặc biệt bằng VBA
Các hàm hoạt động trong tất cả các phiên bản Excel
Nếu hàm LAMBDA không có trong Excel của bạn thì không có gì ngăn cản bạn từ việc tạo một chức năng tương tự với VBA. Người dùng định nghĩahàm (UDF) có thể được viết theo hai cách.
Hàm tùy chỉnh để xóa các ký tự đặc biệt đệ quy :
Mã này mô phỏng logic của hàm LAMBDA đã thảo luận ở trên.
Hàm RemoveUnwantedChars(str As String , chars As String ) If ( "" chars) Then str = Replace(str, Left(chars, 1), "" ) chars = Right(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Else RemoveUnwantedChars = str End If End FunctionHàm tùy chỉnh để xóa các ký tự đặc biệt không đệ quy :
Ở đây, chúng tôi chuyển qua các ký tự không mong muốn từ 1 đến Len(chars) và thay thế những cái được tìm thấy trong chuỗi ban đầu bằng không có gì. Hàm MID kéo từng ký tự không mong muốn và chuyển chúng đến hàm Replace.
Hàm RemoveUnwantedChars(str As String , chars As String ) For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Tiếp theo RemoveUnwantedChars = str End FunctionChèn một trong các mã trên vào sổ làm việc của bạn như được giải thích trong Cách chèn mã VBA trong Excel và chức năng tùy chỉnh của bạn đã sẵn sàng để sử dụng.
Để không nhầm lẫn hàm mới do người dùng xác định với hàm do Lambda xác định, chúng tôi đã đặt tên khác cho hàm này:
RemoveUnwantedChars(string, chars)Giả sử chuỗi gốc ở dạng A2 và các ký tự không mong muốn ở dạng D2, chúng ta có thể loại bỏ chúng bằng công thức sau:
= RemoveUnwantedChars(A2, $D$2)
Chức năng tùy chỉnh với mã hóa cứngký tự
Nếu bạn không muốn bận tâm về việc cung cấp các ký tự đặc biệt cho từng công thức, bạn có thể chỉ định chúng trực tiếp trong mã:
Hàm RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As Ký tự dài = "?¿!¡*%#$(){}[]^&/\~+-" For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1) , "" ) Tiếp theo RemoveSpecialChars = str End FunctionXin lưu ý rằng đoạn mã trên là dành cho mục đích trình diễn. Để sử dụng thực tế, hãy đảm bảo bao gồm tất cả các ký tự bạn muốn xóa trong dòng sau:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
Hàm tùy chỉnh này có tên là RemoveSpecialChars và nó chỉ yêu cầu một ký tự đối số - chuỗi gốc:
RemoveSpecialChars(string)Để loại bỏ các ký tự đặc biệt khỏi tập dữ liệu của chúng tôi, công thức là:
=RemoveSpecialChars(A2)
Xóa các ký tự không in được trong Excel
Microsoft Excel có một chức năng đặc biệt để xóa các ký tự không in được - chức năng CLEAN. Về mặt kỹ thuật, nó loại bỏ 32 ký tự đầu tiên trong bộ ASCII 7 bit (mã từ 0 đến 31).
Ví dụ: để xóa ký tự không in được khỏi A2, đây là công thức để sử dụng :
=CLEAN(A2)
Thao tác này sẽ loại bỏ các ký tự không in được nhưng khoảng trắng trước/sau văn bản và giữa các từ sẽ vẫn còn.
Tới loại bỏ dấu cách thừa , bọc công thức SẠCH trong hàm TRIM:
=TRIM(CLEAN(A2))
Bây giờ, tất cả các hàng đầu vàcác khoảng trắng ở cuối bị xóa, trong khi các khoảng trắng ở giữa được rút gọn thành một ký tự khoảng trắng:
Nếu bạn muốn xóa hoàn toàn tất cả các khoảng trắng bên trong một chuỗi, sau đó thay thế thêm ký tự khoảng trắng (mã số 32) bằng một chuỗi trống:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
Một số khoảng trắng hoặc ký tự ẩn khác vẫn còn trong bảng tính của bạn? Điều đó có nghĩa là những ký tự đó có các giá trị khác nhau trong bộ ký tự Unicode.
Ví dụ: mã ký tự của dấu cách không ngắt ( ) là 160 và bạn có thể xóa mã ký tự đó bằng công thức sau:
=SUBSTITUTE(A2, CHAR(160)," ")
Để xóa một ký tự không in được cụ thể , trước tiên bạn cần tìm giá trị mã của nó. Hướng dẫn chi tiết và ví dụ về công thức có tại đây: Cách xóa một ký tự không in được cụ thể.
Xóa ký tự đặc biệt với Ultimate Suite
Hỗ trợ Excel cho Microsoft 365, Excel 2019 - 2010
Trong ví dụ cuối cùng này, hãy để tôi chỉ cho bạn cách dễ nhất để xóa các ký tự đặc biệt trong Excel. Khi đã cài đặt Ultimate Suite, bạn cần làm như sau:
- Trên tab Dữ liệu Ablebits , trong nhóm Văn bản , hãy nhấp vào Xóa > Xóa ký tự .
Trong giây lát, bạn sẽ nhận được kết quả hoàn hảo:
Nếu xảy ra sự cố, đừng lo lắng - bản sao lưu trang tính của bạn sẽ được tạo tự động khi hộp Sao lưu trang tính này được chọn theo mặc định.
Bạn muốn dùng thử công cụ Xóa của chúng tôi? Một liên kết đến phiên bản đánh giá là ngay bên dưới. Tôi cảm ơn bạn đã đọc và hy vọng sẽ gặp bạn trên blog của chúng tôi vào tuần tới!
Có sẵn các bản tải xuống
Xóa các ký tự đặc biệt - ví dụ (tệp .xlsm)
Ultimate Suite - dùng thử phiên bản (tệp .exe)