Lực td
Lực td
Thảo luận 0 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 1205 lượt xem

Hướng dẫn cách rà soát dữ liệu và loại bỏ dữ liệu bị trùng trong Excel

Mar 01 2021

Việc trùng lặp dữ liệu trong bảng tính Excel là điều không hiếm và thậm chí nó diễn ra hàng ngày tại mọi cơ quan, điều này sẽ dẫn đến việc làm cho file Excel chứa nhiều dung lượng hơn, nhận kết quả không chính xác vì bị trùng lặp dữ liệu trong dải ô và hệ quả gây ra là các hàm sẽ ra kết quả sai, tính tổng sai. Trong bài viết này Gitiho.com sẽ chỉ ra cho bạn 3 cách để rà soát lại các dữ liệu bị trùng lặp và cách thức để loại bỏ chúng ra khỏi bảng tính.

Cách rà soát dữ liệu bị trùng

Cách 1: Dùng Conditional Formatting

Để sử dụng cách này, ta vào Conditional Formatting thuộc tab Home rồi chọn Highlight Cells Rules > Duplicate Values…


Tới đây bạn chỉ cần nhấn OK trong hộp thoại Duplicates Value thì tất cả những giá trị đang bị trùng nhau trong bảng tính Excel đều sẽ bị tô đỏ. Ngay cả việc kéo xuống từng dòng để kiểm tra các ô đỏ bạn cũng không cần phải làm, thay vào đó chúng ta sẽ lọc dữ liệu, từ đó sẽ lọc ra những ô màu đỏ bạn cần.



Cách 2: Dùng công thức COUNTIF

Hàm COUNTIF sẽ giúp chúng ta xác định xem có bao nhiêu ô hiện đang bị trùng lặp trong bảng tính bằng cách dán nhãn "DUP" (tức Duplicate = Trùng) lên những dữ liệu bị lặp lại. Tất nhiên bạn cũng có thể thay đổi nhãn dán này bằng những từ mà bạn muốn


Cách 3: Dùng Macro

Đoạn mã Macro dưới đây sẽ giúp bạn xác đinh được số lượng giá trị đang bị trùng lặp trong bảng tính của chúng ta, cùng với đó những ô chứa dữ liệu trùng lặp sẽ được bôi vàng. Hãy nhớ lưu lại đoạn mã này vào Macro Workbook để chúng ta sử dụng vào lần tới nhé!

Đoạn mã này sẽ không đánh dấu ô đầu tiên có dữ liệu trùng lặp mà sẽ tính từ ô thứ hai trở đi, vậy nên bạn không cần phải lo đến việc bị đánh dấu nhầm

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

Cách loại bỏ dữ liệu trùng trong bảng tính

Cách 1: Dùng công cụ Remove Duplicate

Công cụ này chúng ta sẽ chẳng cần phải tìm kiếm đâu xa khi ngay ở trên thanh công cụ của Excel, ở phần tab Data là ta đã nhìn thấy công cụ Remove Duplicates. Sau khi bấm vào hộp thoại Remove Duplicates thì chúng ta điền vào đó dữ liệu mà đang bị trùng lăp để loại bỏ chúng




Ta cũng có thể truy cập công cụ Remove Duplicate nằm trong Table Tools nếu như bạn đang làm việc trong bảng


Cách 2: Dùng VBA

Chúng ta đã biết rằng VBA là một ngôn ngữ giúp cho việc tự động hoá trong khuôn khổ của Excel. Với đoạn code VBA dưới đây thì nó sẽ chỉ ra cho chúng ta các hàng đang bị lặp lại theo thứ tự từ trên xuống mà không cần phải thay đổi dải ô 

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

Qua bài viết này, Gitiho.com mong rằng bạn đọc sẽ không còn lúng túng trong việc phải tra cứu và xóa đi những dữ liệu bị trùng khiến cho bảng tính của chúng ta gặp trung trặc trong quá trình làm việc nữa

Ngoài ra bạn đọc cũng có thể tìm hiểu qua những nội dung về Excel trên trang Gitiho.com

Hướng dẫn cách sắp xếp ngày trong Excel

Hướng dẫn cách copy chỉ những giá trị hiển thị sau khi lọc trong Excel

HƯỚNG DẪN CÁCH SỬ DỤNG HÀM IF VỚI NHIỀU ĐIỀU KIỆN: AND, OR, HÀM IF LỒNG NHAU VÀ HƠN THẾ

Cùng tham gia cộng đồng hỏi đáp về chủ đề Tin học văn phòng

Thảo luận 0 câu trả lời
Lượt xem 1205 lượt xem
Vỗ tay vỗ tay

0 Bình luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội