CÁCH TÌM VÀ XÓA DỮ LIỆU TRÙNG LẶP CỦA Ô TRONG EXCEL – Học Excel Online Miễn Phí

CÁCH TÌM VÀ XÓA DỮ LIỆU TRÙNG LẶP CỦA Ô TRONG EXCEL – Học Excel Online Miễn Phí

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.

[external_link_head]

CÁCH TÌM VÀ XÓA DỮ LIỆU TRÙNG LẶP CỦA Ô TRONG EXCEL - Học Excel Online Miễn Phí

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 TÌM VÀ XÓA DỮ LIỆU TRÙNG LẶP CỦA Ô TRONG EXCEL - Học Excel Online Miễn Phí

CÁCH TÌM VÀ XÓA DỮ LIỆU TRÙNG LẶP CỦA Ô TRONG EXCEL - Học Excel Online Miễn Phí

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.

[external_link offset=1]

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

CÁCH TÌM VÀ XÓA DỮ LIỆU TRÙNG LẶP CỦA Ô TRONG EXCEL - Học Excel Online Miễn Phí

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

CÁCH TÌM VÀ XÓA DỮ LIỆU TRÙNG LẶP CỦA Ô TRONG EXCEL - Học Excel Online Miễn Phí

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 TÌM VÀ XÓA DỮ LIỆU TRÙNG LẶP CỦA Ô TRONG EXCEL - Học Excel Online Miễn Phí

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.

CÁCH TÌM VÀ XÓA DỮ LIỆU TRÙNG LẶP CỦA Ô TRONG EXCEL - Học Excel Online Miễn Phí

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)

[external_link offset=2]

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:

CÁCH TÌM VÀ XÓA DỮ LIỆU TRÙNG LẶP CỦA Ô TRONG EXCEL - Học Excel Online Miễn Phí

Tác giả: dtnguyen (Nguyễn Đức Thanh)

@ Học Excel Online | DTNguyen.business

· · ·

[external_footer]

Scores: 5 (20 votes)