Tôi nghĩ ai trong chúng ta cũng đều gặp phải việc nhận được kết quả kỳ lạ do dữ liệu trùng lặp trong dải ô. Điều này có thể dễ dàng khiến các hàm VLOOKUP cho kết quả sai hay khiến việc tính tổng bị sai. Đừng lo lắng vì có rất nhiều cách để kiểm tra và thậm chí là xóa hàng dữ liệu trùng lặp trong bảng tính Excel của bạn. Hãy thư giãn đi.
CÁCH 1: SỬ DỤNG CÔNG THỨC
Với cách này, tôi sử dụng hàm COUNTIF để xác định liệu có 2 hay nhiều dữ liệu trong ô bị trùng lặp hay không. Nếu các dữ liệu trùng lặp được tìm thấy, thì các hàng đó được dán nhãn “trùng” (viết tắt của “trùng lặp”), nhưng bạn có thể khiến nhãn đó có bất kỳ từ nào bạn muốn.
CÁCH 2: SỬ DỤNG ĐỊNH DẠNG CÓ ĐIỀU KIỆN
Bạn có biết rằng bạn có thể thiết lập trước định dạng có điều kiện để đánh dấu trùng lặp? Trong một khoảng thời gian dài, tôi không hề biết gì về điều này và tôi vẫn còn nhớ rõ sự hoài nghi về phương pháp đơn giản này. Tôi không nghĩ rằng nó đã có sẵn từ rất lâu! Những gì bạn cần làm đó là đánh dấu dữ liệu trong ô rồi đi đến
Từ đó, bạn chỉ cần nhấn nút OK khi hộp thoại xuất hiện và bất cứ ô nào trùng lặp đều sẽ được đánh dấu bằng cách tô hết ô bằng màu đỏ. Có hàng ngàn hàng và bạn không muốn phải cuộn xuống từng ô để kiểm tra ô nào có màu đỏ? À thì bạn có thể dễ dàng lọc dữ liệu và xem xem liệu bạn có thể lọc các ô có màu đỏ hay không.
Đây là phương pháp rất tuyệt vời. Cách này có thể nhanh chóng dùng cho dữ liệu để xem xem có bất kỳ sự trùng lặp nào không. Tôi có thói quen sử dụng quá trình này để kiểm tra các cột chứng minh nhân dân của mình. Các cột này là kết quả của hàm VLOOKUP, nên tôi chắc rằng tôi có các giá trị đặc biệt trong cột.
Sau khi chạy mã VBA Macro này, bạn sẽ thấy một hộp tin nhắn nói rằng bạn có bao nhiều ô trùng lặp được tìm thấy và nó sẽ hỏi liệu bạn có muốn tô vàng các ô này. Đây sẽ là một sự bổ sung tuyệt vời cho Macro Workbook cá nhân của bạn (dĩ nhiên là tôi đã có mã này rồi!).
If Not rngFind Is Nothing Then ‘Record first instance found FirstAddress = rngFind.Address
‘Find any next instances of value Do Set rngFind = rng.FindNext(rngFind) If rngFind.Address = FirstAddress Then Exit Do DupAddresses = DupAddresses & rngFind.Address & “,” Loop
End Sub
Hãy lưu ý rằng mã này không đánh dấu ô đầu tiên có dữ liệu trùng lặp. Chỉ ô thứ hai trở đi mới được đánh dấu.
CÁCH 1: SỬ DỤNG NÚT REMOVE DUPLICATES
Bạn có biết rằng có một nút giúp xóa dữ liệu trùng lặp trên thanh Ribbon không? Đây là một tính năng thật sự tuyệt vời vì nó giúp bạn tiết kiệm rất nhiều thời gian. Những điều bạn cần làm đó là đi đến tab Data trên thanh Ribbon. Bạn có thể nhấp vào nút Remove Duplicates rồi điền vào hộp thoại để xóa các dữ liệu trùng lặp tùy vào nhu cầu của bạn.
Sub DeleteDuplicates()
Dim rng As Range Dim rngFind As Range Dim cell As Range Dim DupAddresses As String Dim SearchList As String Dim Delimiter As String
‘Setup Variables Set rng = Selection Delimiter = “-;;-“
Set rngFind = rng.Find(what:=cell.Value, LookIn:=xlValues, _ lookat:=xlWhole, searchdirection:=xlNext)
If Not rngFind Is Nothing Then ‘Record first instance found FirstAddress = rngFind.Address
‘Find any next instances of value Do Set rngFind = rng.FindNext(rngFind) If rngFind.Address = FirstAddress Then Exit Do Set rngFind = rngFind.Resize(1, rng.Columns.Count) DupAddresses = DupAddresses & rngFind.Address & “,” Loop
UserAnswer = MsgBox(rng.Count & ” duplicate values were found,” _ & ” would you like to delete any duplicate rows found?”, vbYesNo) If UserAnswer = vbYes Then Selection.Delete Shift:=xlUp Else MsgBox “No duplicate cell values were found” End If
End Sub
CÒN PHƯƠNG PHÁP NÀO MÀ TÔI BỎ SÓT KHÔNG?