Có nhiều hơn một cách để có thể xóa nội dung bị lặp trong một ô của Excel.
Khi bạn muốn loại bỏ dữ liệu trùng lặp trong một cột, Excel đã có sẵn một loạt lựa chọn cho bạn: có thể sử dụng tính năng Remove Duplicates, hoặc có thể sử dụng Advanced Filter, hoặc thậm chí nếu bạn sử dụng Office 365, thì bạn có thể dùng hàm UNIQUE. Nhưng, nếu nội dung trùng lặp của bạn không nằm trong nhiều ô mà lại nằm ngay trong cùng một ô của Excel, thì những công cụ có sẵn của Excel sẽ chưa thể giúp bạn làm được điều này một cách dễ dàng. Vậy, làm thế nào để chúng ta có thể xóa được nội dung trùng lặp trong một ô của Excel? Bởi vì Excel không cho chúng ta công cụ nào để làm điều này, nên chúng ta sẽ sử dụng ngôn ngữ lập trình VBA trong Excel để có thể tự viết ra giải pháp này.
Cách xóa từ trùng lặp trong một ô của Excel
Vấn đề chúng ta gặp phải là: nội dung, từ ngữ trùng lặp trong một ô của Excel, hiện tại chúng ta muốn loại bỏ các nội dung trùng lặp và chỉ giữ lại những nội dung duy nhất, không bị lặp lại.
Giải pháp: sử dụng ngôn ngữ lập trình VBA để tự viết ra một hàm người dùng tự định nghĩa (User-defined function)
Hàm người dùng trong VBA để loại bỏ dữ liệu trùng lặp trong một ô Excel
Làm thế nào để sử dụng Code VBA trong file Excel của bạn
Chúng ta sẽ bắt đầu bằng cách copy các đoạn code cần thiết vào file Excel như sau:
1. Mở file Excel bạn muốn sử dụng 2. Bấm phím tắt ALT + F11 để mở Visual Basic Editor 3. Ở vùng cửa sổ Project – VBA Project bên tay trái, bấm chuột phải vào ThisWorkbook sau đó chọn Insert > Module ở trong menu chuột phải. 4. Dán đoạn code bạn cần sử dụng vào trong Module này. 5. Nếu bạn muốn tiếp tục sử dụng đoạn code này trong tương lai, hãy lưu file Excel này với phần mở rộng có hỗ trợ macro – .xlsm hay .xlsb
Nếu bạn chưa làm được theo hướng dẫn này, hãy theo dõi bài hướng dẫn chạy code Macro trong Excel
Cách sử dụng hàm người dùng
Chúc mừng các bạn, nếu các bạn đã làm thành công tới bước này, như vậy các bạn đã tự tạo ra một hàm của riêng mình để có thể sử dụng trong Excel như các hàm sẵn có của Microsoft Excel. Vậy chúng ta sẽ sử dụng hàm này như thế nào?
Cú pháp của hàm RemoveDupeWords
RemoveDupeWords(text, [delimiter])
Trong đó:
– RemoveDupeWords là tên hàm, khi sử dụng trên bảng tính Excel, chúng ta sẽ cần gõ vào 1 ô như sau: (=RemoveDupeWords(…))
– text (bắt buộc): tham chiếu tới một ô chứa dữ liệu cần xử lý – delimiter (không bắt buộc): dấu hiệu ngăn cách các từ trong ô của bạn. Nếu bỏ qua tham số này, dấu cách ” ” sẽ được sử dụng làm dấu hiệu ngăn cách mặc định
Hàm này của chúng ta không phân biệt chữ hoa chữ thường.
Cách sử dụng hàm RemoveDupeWords
Sau khi đã thêm thành công code của hàm RemoveDupeWords vào trong file Excel của mình, bạn có thể dùng hàm này như như hàm của Excel: trong một ô, bắt đầu gõ vào dấu “=”, sau đó gõ tên hàm. Tên hàm thậm chí còn xuất hiện trong danh sách hàm được Excel gợi ý.
Ví dụ, để xử lý từ trùng lặp được ngăn cách bởi dấu phẩy và dấu cách trong ô A2, chúng ta có thể sử dụng công thức như sau trong ô B2:
=RemoveDupeWords(A2, “, “)
Nếu dữ liệu nguồn của bạn được ngăn cách bởi dấu cách, thì công thức bạn cần sử dụng sẽ ngắn gọn hơn một chút:
=RemoveDupeWords(A2)
Cách xóa dữ liệu trùng lặp trong nhiều ô cùng lúc
Nếu bạn muốn thực hiện thao tác loại bỏ dữ liệu trùng lặp trong nhiều ô cùng lúc mà không muốn dùng hàm như trên, thì bạn có thể sử dụng Macro sau đây:
Trong đoạn code trên, dấu hiệu ngăn cách giữa các từ mặc định là “, “. Nếu bạn muốn thay đổi, thì bạn cần thay đổi ở dòng:
cell.Value = RemoveDupeWords(cell.Value, “, “)
Chú ý: để đoạn code trên hoạt động được, code của hàm RemoveDupeWords cần phải ở trong cùng Module với code trên.
Cách sử dụng Macro
Sau khi đã copy code vào trong Module của file Excel bạn cần xử lý dữ liệu, bạn làm như sau để có thể chạy Macro:
1. Chọn vùng dữ liệu cần xử lý 2. Bấm ALT + F8 để mở cửa sổ danh sách Macro 3. Chọn Macro trong danh sách và bấm nút Run
Làm thế nào để loại bỏ ký tự trùng lặp trong một ô
Vấn đề: Nhiều ký tự trùng lặp trong một ô mà Excel không có công cụ nào giúp nhanh chóng loại bỏ ký tự trùng lặp. Giải pháp: Viết một hàm VBA để xử lý
Hàm người dùng trong VBA để xóa ký tự trùng lặp
Hàm người dùng chúng ta định nghĩa với code VBA này sẽ chỉ giữ lại những ký tự duy nhất trong ô và loại bỏ những ký tự trùng lặp
Cách sử dụng hàm RemoveDupeChars
Cú pháp của hàm RemoveDupeChars như sau:
RemoveDupeChars(text)
trong đó:
– RemoveDupeChars là tên hàm, dùng như một hàm có sẵn trong Excel ở trên bảng tính – text (bắt buộc) là địa chỉ ô chứa dữ liệu cần xử lý.
Để sử dụng hàm này trên bảng tính, chúng ta sẽ làm như hình minh họa:
Lưu ý: nếu dữ liệu của các bạn được ngăn cách bởi dấu hiệu ngăn cách – delimiter, hãy xử lý trước bằng hàm RemoveDupeWords ở trên.
Như vậy, qua bài viết này, các bạn lại có thêm một công cụ nữa để nhanh chóng xử lý được dữ liệu ngay trên bảng tính Excel của mình với ngôn ngữ lập trình VBA. Để có thể học, hiểu, làm chủ và tự viết ra được những giải pháp VBA Excel của riêng mình, hãy tham gia các khóa học VBA cùng Nguyễn Đức Thanh:
VBA101 – Tự động hoá Excel với lập trình VBA cho người mới bắt đầu
VBA201 – Lập trình VBA nâng cao trong Excel
VBA301 – Tự động hóa tương tác với Website, lấy dữ liệu từ Website với VBA
SGS101 – Tự động hóa SAP ERP với VBA