CÁCH TÌM VÀ XÓA DỮ LIỆU TRÙNG LẶP CỦA Ô TRONG EXCEL

VẤN ĐỀ TRÙNG LẶP

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 TÌM DỮ LIỆU TRÙNG LẶP TRONG BẢNG TÍNH

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

Home Ribbon Tab > Conditional Formatting > Highlight Cells Rules > Duplicate Values…

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.

CÁCH 3: SỬ DỤNG LẬP TRÌNH VBA MACRO

Bài viết này sẽ không phải là một bài dành cho các chuyên gia bảng tính thật sự nếu không đề cập đến giải pháp dành cho VBA automator! Dưới đây là một macro nho nhỏ mà tôi đã tổng hợp. Macro này sẽ xác định liệu bạn có bất cứ giá trị trùng lặp nào trong dải ô đã chọn hay không.

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!).

Sub SearchForDuplicates()
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 = “-;;-“‘Loop through each cell in selection
For Each cell In rng.Cells
‘Does cell have value?
If cell.Value <> “” Then
‘Has value been searched for yet?
If InStr(1, SearchList, cell.Value & Delimiter) = 0 Then
SearchList = SearchList & cell.Value & 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
DupAddresses = DupAddresses & rngFind.Address & “,”
Loop

End If
End If
End If
Next cell

‘Report Results
If DupAddresses <> “” Then
Set rng = Range(Left(DupAddresses, Len(DupAddresses) – 1))
UserAnswer = MsgBox(rng.Count & ” duplicate values were found,” _
& ” would you like them to be highlighted in yellow?”, vbYesNo)
If UserAnswer = vbYes Then rng.Interior.Color = vbYellow
Else
MsgBox “No duplicate cell values were found”
End If

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 XÓA DỮ LIỆU TRÙNG LẶP KHỎI BẢNG TÍNH CỦA BẠN

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.

Bạn cũng có thể truy cập nút Remove Duplicates bên trong Table Tools – Design Ribbon tab nếu bạn đang thao tác với bảng.

CÁCH 2: SỬ DỤNG LẬP TRÌNH VBA

Mã VBA dưới đây chỉ bạn cách các hàng trùng lặp theo thứ tự trong dải ô được chọn mà không cần phải thay đổi dải ô thành bảng. Đừng lo lắng, nó sẽ hỏi liệu bạn có muốn xóa các ô trùng lặp trước khi xóa vĩnh viễn dữ liệu.

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 = “-;;-”

‘Loop through each cell in selection
For Each cell In rng.Columns(1).Cells
‘Does cell have value?
If cell.Value <> “” Then
‘Has value been searched for yet?
If InStr(1, SearchList, cell.Value & Delimiter) = 0 Then
SearchList = SearchList & cell.Value & 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

End If
End If
End If
Next cell

‘Report Results
If DupAddresses <> “” Then
Set rng = Range(Left(DupAddresses, Len(DupAddresses) – 1))
rng.Select

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?

Còn có phương pháp nào khác trong Excel mà thậm chí còn dễ hơn các phương pháp này không? Bạn có biết cách nào dễ hơn để hoàn thành nhiệm vụ trong VBA macro của tôi không? Tôi muốn nghe ý kiến của bạn và học hỏi kinh nghiệm từ bạn. Hãy bình luận bên dưới nếu bạn có bất cứ cách nào khiến nội dung trong bài viết này tốt hơn!

Nếu bạn thấy tò mò và muốn tìm hiểu nhiều hơn về VBA, bạn tham khảo khóa học  VBA101 – VBA cơ bản dành cho người mới bắt đầu của hệ thống Học Excel Online để có thể học VBA đầy đủ và theo hệ thống. Chi tiết xem tại: