Tìm Dữ Liệu Trùng Nhau Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao

Mục lục bài viết

Mở Đầu

Trong môi trường làm việc hiện đại, Excel vẫn là công cụ không thể thiếu đối với các chuyên gia phân tích dữ liệu, kế toán, quản lý dự án và hầu hết các nhân viên văn phòng. Một trong những nhiệm vụ thường gặp nhất khi làm việc với bảng tính là tìm và xử lý dữ liệu trùng lặp. Dữ liệu trùng lặp không chỉ làm giảm chất lượng báo cáo, gây sai lệch trong phân tích mà còn làm tăng thời gian xử lý và chi phí lưu trữ. Vì vậy, nắm vững các kỹ thuật tìm dữ liệu trùng nhau trong Excel là vô cùng cần thiết.

Bài viết dưới đây sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ các phương pháp cơ bản nhất đến các kỹ thuật nâng cao, giúp bạn nhanh chóng phát hiện và loại bỏ (hoặc đánh dấu) các bản ghi trùng lặp trong Excel. Nội dung sẽ bao gồm:

  1. Khái niệm và nguyên nhân xuất hiện dữ liệu trùng lặp.
  2. Các công cụ và hàm cơ bản trong Excel để tìm trùng lặp: Conditional Formatting, Remove Duplicates, hàm COUNTIF, COUNTIFS, VLOOKUP, MATCH, IF, SUMPRODUCT.
  3. Sử dụng Power Query để xử lý dữ liệu trùng lặp ở quy mô lớn.
  4. Kỹ thuật nâng cao với VBA (Macro) để tự động hoá quy trình.
  5. Các lưu ý khi làm việc với dữ liệu đa cột, dữ liệu có khoảng trắng, ký tự đặc biệt, hoặc dữ liệu dạng ngày tháng.
  6. Cách duy trì dữ liệu sạch và ngăn ngừa trùng lặp trong tương lai.
  7. Bộ công cụ và tài nguyên tham khảo bổ sung.

Hãy cùng đi sâu vào từng phần để nắm vững mọi khía cạnh của vấn đề.

1. Hiểu Rõ Về Dữ Liệu Trùng Lặp

1.1 Định Nghĩa

Dữ liệu trùng lặp (duplicate data) trong Excel là các bản ghi (row) hoặc giá trị (cell) xuất hiện đúng hoặc gần giống nhau ở một hoặc nhiều cột. Tùy vào mục đích phân tích, “trùng lặp” có thể được định nghĩa:

  • Trùng lặp hoàn toàn: Tất cả các cột trong một hàng có giá trị giống hệt nhau.
  • Trùng lặp một phần: Chỉ một số cột (hoặc một cột) có giá trị giống nhau, các cột còn lại có thể khác.
  • Gần giống: Có thể có khoảng trắng thừa, ký tự hoa/thường khác nhau, hoặc định dạng ngày tháng khác.

1.2 Nguyên Nhân Gây Ra Trùng Lặp

Nguyên NhânMô Tả
Nhập liệu thủ côngNgười dùng nhập lại cùng một thông tin nhiều lần.
Kết hợp dữ liệu từ nhiều nguồnKhi hợp nhất các file CSV, TXT, hoặc workbook khác nhau.
Lỗi trong công thứcCông thức VLOOKUP, INDEX-MATCH trả về giá trị không mong muốn.
Import dữ liệuKhi import dữ liệu từ hệ thống ERP, CRM, hoặc API mà không có kiểm soát.
Định dạng không đồng nhấtKhoảng trắng, ký tự đặc biệt, hoặc ngày tháng được lưu dưới dạng text.

Hiểu rõ nguyên nhân sẽ giúp bạn chọn phương pháp phù hợp nhất để xử lý.

2. Các Phương Pháp Cơ Bản Để Tìm Dữ Liệu Trùng Lặp

2.1 Sử Dụng Conditional Formatting (Định Dạng Có Điều Kiện)

Đây là cách nhanh nhất để đánh dấu các giá trị trùng lặp trong một cột hoặc một vùng dữ liệu.

Bước thực hiện:

  1. Chọn vùng dữ liệu (ví dụ: cột A2:A1000).
  2. Vào Home → Conditional Formatting → Highlight Cells Rules → Duplicate Values….
  3. Chọn màu hiển thị (mặc định là Light Red Fill with Dark Red Text).
  4. Nhấn OK.

Lưu ý:
– Nếu muốn tìm trùng lặp dựa trên nhiều cột, bạn cần tạo một cột hỗ trợ (helper column) kết hợp các giá trị bằng công thức =A2&B2&C2 và áp dụng Conditional Formatting cho cột này.
– Đối với dữ liệu có khoảng trắng thừa, hãy dùng hàm TRIM trong cột hỗ trợ trước khi áp dụng.

2.2 Remove Duplicates (Xóa Trùng Lặp)

Công cụ Remove Duplicates cho phép bạn xóa trực tiếp các hàng trùng lặp, giữ lại một bản ghi duy nhất.

Cách thực hiện:

  1. Chọn bảng dữ liệu (hoặc toàn bộ sheet nếu cần).
  2. Vào Data → Remove Duplicates.
  3. Trong hộp thoại, chọn các cột mà bạn muốn xét trùng lặp (có thể chọn nhiều cột).
  4. Nhấn OK; Excel sẽ thông báo số hàng bị xóa và số hàng còn lại.

Cảnh báo:
– Thao tác này không thể hoàn tác nếu bạn không lưu bản sao. Nên sao lưu dữ liệu trước.
– Nếu muốn giữ lại bản sao của các bản ghi bị xóa, hãy sao chép dữ liệu sang một sheet khác trước khi thực hiện.

2.3 Hàm COUNTIF và COUNTIFS

COUNTIF và COUNTIFS là các hàm đếm số lần xuất hiện của một giá trị (hoặc một tập hợp điều kiện) trong một phạm vi.

2.3.1 Đếm trùng lặp trong một cột

Giả sử cột A chứa danh sách mã khách hàng (A2:A1000). Bạn muốn đánh dấu các mã xuất hiện hơn 1 lần.

=IF(COUNTIF($A$2:$A$1000, A2)>1, "Trùng", "Độc")
  • Nhập công thức vào ô B2 và kéo xuống.
  • Kết quả “Trùng” sẽ xuất hiện ở các hàng có giá trị lặp.

2.3.2 Đếm trùng lặp dựa trên nhiều cột

Ví dụ: Bạn muốn kiểm tra trùng lặp dựa trên cột A (Mã khách) và cột B (Ngày giao dịch).

=IF(COUNTIFS($A$2:$A$1000, A2, $B$2:$B$1000, B2)>1, "Trùng", "Độc")

2.3.3 Tạo cột hỗ trợ để so sánh toàn bộ hàng

Nếu muốn xét toàn bộ các cột (A:D) cùng lúc:

  1. Tạo cột E với công thức ghép:
=A2 & "|" & B2 & "|" & C2 & "|" & D2
  1. Sau đó dùng COUNTIF trên cột E:
=IF(COUNTIF($E$2:$E$1000, E2)>1, "Trùng", "Độc")

2.4 Hàm MATCH và VLOOKUP

MATCH trả về vị trí của một giá trị trong một mảng. Khi kết hợp với IFERROR, bạn có thể kiểm tra xem giá trị có tồn tại ở vị trí khác hay không.

=IFERROR(IF(MATCH(A2, $A$1:A1, 0), "Trùng", "Độc"), "Độc")
  • Công thức này so sánh giá trị hiện tại với các giá trị phía trên.
  • Nếu MATCH tìm thấy, nghĩa là đã xuất hiện trước đó → “Trùng”.

VLOOKUP thường được dùng để so sánh hai danh sách khác nhau, ví dụ: danh sách khách hàng trong Sheet1 so với Sheet2.

=IFERROR(IF(VLOOKUP(A2, Sheet2!$A$2:$A$1000, 1, FALSE)=A2, "Trùng", "Độc"), "Độc")

2.5 SUMPRODUCT – Phương Pháp Linh Hoạt

SUMPRODUCT cho phép đếm các điều kiện phức tạp mà COUNTIFS không hỗ trợ (ví dụ: so sánh với bảng động).

=IF(SUMPRODUCT(($A$2:$A$1000=A2)($B$2:$B$1000=B2))>1, "Trùng", "Độc")
  • Công thức này đếm số hàng mà cột A = A2 và cột B = B2 đồng thời.
  • Nếu kết quả >1 → “Trùng”.

3. Xử Lý Dữ Liệu Trùng Lặp Với Power Query

Khi dữ liệu lên tới hàng chục, hàng trăm nghìn, các công cụ truyền thống trong Excel có thể chậm hoặc không đáp ứng. Power Query (trong Excel 2026 trở lên, hoặc qua Add‑in “Get & Transform”) là giải pháp mạnh mẽ để import, làm sạch và biến đổi dữ liệu.

3.1 Nhập Dữ Liệu Vào Power Query

  1. Chọn Data → Get Data → From Table/Range (hoặc From File nếu là CSV/Excel khác).
  2. Power Query Editor sẽ mở ra.

3.2 Loại Bỏ Dòng Trùng Lặp

Trong Power Query:

  • Chọn Home → Remove Rows → Remove Duplicates.
  • Power Query sẽ tự động xác định các cột được chọn (mặc định là tất cả).
  • Nếu muốn chỉ dựa trên một vài cột, chọn các cột trước khi bấm “Remove Duplicates”.

3.3 Đánh Dấu Dòng Trùng Lặp (Thêm Cột)

Tìm Dữ Liệu Trùng Nhau Trong Excel
Tìm Dữ Liệu Trùng Nhau Trong Excel

Nếu bạn muốn giữ lại tất cả dữ liệu và chỉ đánh dấu các bản ghi trùng lặp:

  1. Duplicate Column (nhân bản cột) hoặc tạo Custom Column:
= Table.AddColumn(#"PreviousStep", "IsDuplicate", each List.Count( Table.SelectRows(#"PreviousStep", (r) => rColumnA=ColumnA and rColumnB=ColumnB)) > 1)
  1. Kết quả sẽ là TRUE/FALSE hoặc “Trùng”/“Độc”.

3.4 Kết Hợp Nhiều Bảng Đầu Vào

Khi có nhiều nguồn dữ liệu (ví dụ: file CSV hàng ngày), bạn có thể append (gộp) các bảng và sau đó thực hiện loại bỏ trùng lặp một lần duy nhất.

  • Home → Append Queries → chọn các bảng cần gộp.
  • Thực hiện Remove Duplicates trên bảng đã gộp.

3.5 Lưu Kết Quả Trở Lại Excel

Khi hoàn tất, bấm Home → Close & Load để đưa dữ liệu đã xử lý vào một sheet mới hoặc hiện tại.

Ưu điểm Power Query:

  • Xử lý dữ liệu tự động hoá (có thể lưu lại các bước và refresh khi dữ liệu mới vào).
  • Hiệu suất tốt hơn rất nhiều so với công thức trên hàng triệu bản ghi.
  • Dễ dàng gỡ lỗi bằng cách xem từng bước trong “Applied Steps”.

4. Tự Động Hóa Với VBA (Macro)

Đối với người dùng muốn tự động hoá toàn bộ quy trình (đánh dấu + xóa + báo cáo), VBA là công cụ mạnh mẽ. Dưới đây là một macro mẫu thực hiện:

  1. Đánh dấu các dòng trùng lặp dựa trên một hoặc nhiều cột.
  2. Sao chép các dòng trùng lặp vào một sheet “Duplicates”.
  3. Xóa các dòng trùng lặp trong sheet gốc, giữ lại một bản ghi duy nhất.

4.1 Mã VBA Mẫu

Sub FindAndHandleDuplicates() Dim wsSrc As Worksheet, wsDup As Worksheet Dim rngData As Range, dict As Object Dim key As String, i As Long, lastRow As Long, dupRow As Long Set wsSrc = ThisWorkbook.Sheets("Data") ' Sheet chứa dữ liệu gốc Set wsDup = ThisWorkbook.Sheets("Duplicates") ' Sheet sẽ lưu trữ trùng lặp wsDup.Cells.Clear ' Xóa nội dung cũ lastRow = wsSrc.Cells(wsSrc.Rows.Count, "A").End(xlUp).Row Set rngData = wsSrc.Range("A2:D" & lastRow) ' Giả sử dữ liệu A:D, tiêu đề ở hàng 1 Set dict = CreateObject("Scripting.Dictionary") dupRow = 2 ' Bắt đầu ghi vào sheet Duplicates từ hàng 2 Application.ScreenUpdating = False For i = 2 To lastRow ' Tạo key ghép các cột A, B, C, D (có thể thay đổi tùy nhu cầu) key = Trim(rngData.Cells(i - 1, 1).Value) & "|" & _ Trim(rngData.Cells(i - 1, 2).Value) & "|" & _ Trim(rngData.Cells(i - 1, 3).Value) & "|" & _ Trim(rngData.Cells(i - 1, 4).Value) If dict.Exists(key) Then ' Đánh dấu màu vàng cho dòng trùng trong sheet gốc wsSrc.Rows(i).Interior.Color = vbYellow ' Sao chép dòng này vào sheet Duplicates wsSrc.Rows(i).Copy wsDup.Rows(dupRow) dupRow = dupRow + 1 Else dict.Add key, i End If Next i ' Xóa các dòng đã được đánh dấu (trừ dòng đầu tiên giữ lại) For i = lastRow To 2 Step -1 If wsSrc.Rows(i).Interior.Color = vbYellow Then wsSrc.Rows(i).Delete End If Next i Application.ScreenUpdating = True MsgBox "Hoàn tất! Đã sao chép " & dupRow - 2 & " bản ghi trùng lặp vào sheet 'Duplicates'.", vbInformation
End Sub

Giải thích mã:

  • Dictionary (Scripting.Dictionary) dùng để lưu key duy nhất (kết hợp các cột). Khi gặp key đã tồn tại → phát hiện trùng lặp.
  • Trim loại bỏ khoảng trắng thừa.
  • Color đánh dấu các dòng trùng lặp bằng màu vàng (có thể thay đổi).
  • Copy sao chép các dòng trùng sang sheet “Duplicates”.
  • Delete xóa các dòng trùng (bắt đầu từ cuối lên để tránh lỗi khi xóa).

4.2 Khi Nào Nên Dùng VBA?

  • Khi phải lặp lại quy trình trên nhiều file hoặc nhiều lần.
  • Khi dữ liệu quá lớn và các công cụ tích hợp (Conditional Formatting, Remove Duplicates) chậm.
  • Khi cần báo cáo chi tiết (ví dụ: ghi lại thời gian, số lượng bản ghi trùng).

5. Xử Lý Các Trường Hợp Đặc Biệt

5.1 Dữ Liệu Có Khoảng Trắng Thừa

  • Giải pháp: Sử dụng hàm TRIM hoặc CLEAN trong cột hỗ trợ trước khi kiểm tra trùng lặp.
  • Ví dụ: =TRIM(A2) → Sau đó dùng COUNTIF trên cột đã làm sạch.

5.2 Dữ Liệu Không Nhạy Cảm Với Viết Hoa/Thường

  • Giải pháp: Chuyển toàn bộ dữ liệu sang chữ thường (LOWER) hoặc chữ hoa (UPPER) trước khi so sánh.
  • Ví dụ: =LOWER(A2) → COUNTIF($B$2:$B$1000, LOWER(A2)).

5.3 Dữ Liệu Ngày Tháng

Ngày tháng có thể được lưu dưới dạng text hoặc serial number. Khi so sánh, nên chuẩn hoá:

=IF(COUNTIF($B$2:$B$1000, INT(A2))>1, "Trùng", "Độc")
  • INT chuyển ngày tháng dạng serial (số nguyên) để loại bỏ thời gian nếu có.

5.4 Dữ Liệu Với Ký Tự Đặc Biệt (ví dụ: dấu gạch ngang, dấu chấm)

  • Cách xử lý: Dùng hàm SUBSTITUTE để loại bỏ ký tự không mong muốn.
=SUBSTITUTE(SUBSTITUTE(A2, "-", ""), ".", "")

Sau khi làm sạch, áp dụng COUNTIF hoặc COUNTIFS.

5.5 Kiểm Tra Trùng Lặp Giữa Hai Sheet Khác Nhau

  • Sử dụng VLOOKUP hoặc XLOOKUP (Excel 365/2026).
  • Ví dụ, kiểm tra mã khách trong Sheet1 so với Sheet2:
=IFERROR(IF(XLOOKUP(A2, Sheet2!$A$2:$A$5000, Sheet2!$A$2:$A$5000, "")=A2, "Trùng", "Độc"), "Độc")
  • Nếu muốn trả về số lần xuất hiện trong Sheet2:
=COUNTIF(Sheet2!$A$2:$A$5000, A2)

6. Duy Trì Dữ Liệu Sạch Và Ngăn Ngừa Trùng Lặp

6.1 Thiết Lập Validation (Xác Thực Dữ Liệu)

  • Data Validation → Custom: Dùng công thức =COUNTIF($A$2:$A$1000, A2)=1 để ngăn người dùng nhập giá trị đã tồn tại.
  • Khi nhập dữ liệu mới, Excel sẽ hiện cảnh báo nếu giá trị trùng.

6.2 Sử Dụng Table và Structured References

  • Khi dữ liệu được đặt trong Table (Ctrl+T), các công thức sẽ tự động mở rộng khi thêm dòng mới, tránh bỏ sót các bản ghi mới trong việc kiểm tra trùng lặp.

6.3 Thực Hiện Kiểm Tra Định Kỳ

  • Macro scheduled (Task Scheduler + VBA) để chạy kiểm tra trùng lặp mỗi ngày hoặc mỗi khi file được mở.
  • Gửi email báo cáo qua Outlook VBA nếu phát hiện quá mức trùng lặp cho phép.

6.4 Ghi Chú và Tài Liệu Hóa Quy Trình

  • Lưu lại SOP (Standard Operating Procedure) cho việc nhập dữ liệu: quy tắc viết hoa, không để khoảng trắng, định dạng ngày tháng chuẩn.
  • Đào tạo người dùng cuối về tầm quan trọng của dữ liệu sạch.

7. Bộ Công Cụ, Add‑In Và Tài Nguyên Tham Khảo

Công CụMô TảLink
Power QueryNhập, biến đổi, loại bỏ trùng lặp mạnh mẽ.Data → Get & Transform
Kutools for ExcelAdd‑in có tính năng “Select Duplicate & Unique Cells”.https://www.extendoffice.com/product/kutools-for-excel.html
Ablebits Duplicate RemoverAdd‑in chuyên nghiệp, hỗ trợ nhiều tiêu chí trùng lặp.https://www.ablebits.com/excel-duplicate-remover/
Excel VBA – Scripting.DictionaryTham khảo cách dùng Dictionary để xử lý trùng lặp nhanh.https://docs.microsoft.com/office/vba/language/reference/user-interface-help/dictionary-object
Microsoft Docs – COUNTIFSHướng dẫn chi tiết về hàm COUNTIFS.https://learn.microsoft.com/en-us/office/troubleshoot/excel/countifs-function

8. Tổng Kết

Việc tìm và xử lý dữ liệu trùng lặp trong Excel không chỉ là một nhiệm vụ kỹ thuật mà còn là một phần quan trọng của quản trị dữ liệu. Bài viết đã trình bày:

  • Khái niệm và nguyên nhân gây ra trùng lặp.
  • Các công cụ cơ bản: Conditional Formatting, Remove Duplicates, hàm COUNTIF/COUNTIFS, MATCH, VLOOKUP.
  • Power Query – giải pháp mạnh mẽ cho dữ liệu lớn.
  • VBA – tự động hoá quy trình, tạo báo cáo chi tiết.
  • Xử lý các trường hợp đặc biệt (khoảng trắng, ký tự đặc biệt, ngày tháng, trùng lặp đa cột).
  • Chiến lược duy trì dữ liệu sạch và ngăn ngừa trùng lặp trong tương lai.
  • Tài nguyên bổ trợ giúp bạn mở rộng kiến thức và áp dụng nhanh vào thực tiễn.

Áp dụng những phương pháp trên một cách linh hoạt sẽ giúp bạn:

  • Tiết kiệm thời gian đáng kể trong việc làm sạch dữ liệu.
  • Nâng cao độ tin cậy của các báo cáo, phân tích và quyết định dựa trên dữ liệu.
  • Giảm rủi ro sai sót do dữ liệu trùng lặp gây ra trong quy trình kinh doanh.

Hãy bắt tay vào thực hành ngay hôm nay, chọn công cụ phù hợp với quy mô và tính chất dữ liệu của bạn, và đừng quên lưu lại SOP để cả đội ngũ luôn duy trì một môi trường dữ liệu sạch, chuẩn và hiệu quả. Chúc bạn thành công!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận