Trong môi trường làm việc hiện đại, dữ liệu luôn được lưu trữ và quản lý trong các file Excel. Khi cần so sánh, hợp nhất hoặc đồng bộ dữ liệu giữa hai bảng tính, việc phát hiện dữ liệu trùng lặp là một bước quan trọng để đảm bảo tính chính xác và hiệu quả của quy trình. Mặc dù Excel cung cấp nhiều công cụ hỗ trợ, nhưng nhiều người vẫn chưa biết cách tận dụng hết tiềm năng của nó để tìm kiếm dữ liệu trùng nhau một cách nhanh chóng và chính xác. Bài viết này sẽ hướng dẫn chi tiết các phương pháp khác nhau, từ công thức đơn giản nhất, Conditional Formatting, Power Query đến VBA, giúp bạn thực hiện công việc này một cách dễ dàng và chuyên nghiệp.
Có thể bạn quan tâm: Trung Tâm Tin Học Văn Phòng: Nơi Nâng Cao Kỹ Năng Word, Excel, Powerpoint
1. Giới thiệu chung
Khi làm việc với dữ liệu, trùng lặp thường xuất hiện vì nhiều lý do: nhập dữ liệu thủ công, merge dữ liệu từ nhiều nguồn, hay dữ liệu được cập nhật đồng thời từ nhiều người. Nếu không kịp phát hiện và xử lý, dữ liệu trùng lặp có thể gây nhầm lẫn, làm mất thời gian và dẫn đến quyết định sai lầm. Do đó, việc tìm kiếm dữ liệu trùng nhau trong hai file Excel không chỉ là một thao tác thao tác cơ bản mà còn là một bước quan trọng trong quy trình dữ liệu.
Các file Excel thường có cấu trúc bảng, với các cột và hàng chứa dữ liệu. Khi so sánh hai file, chúng ta có thể so sánh theo một hoặc nhiều cột khóa (key), ví dụ như mã số khách hàng, mã sản phẩm, hoặc ngày giao dịch. Nếu dữ liệu được lưu trữ theo cách chuẩn, việc tìm trùng lặp sẽ trở nên đơn giản hơn rất nhiều.
Có thể bạn quan tâm: Trong Excel: Chức Năng Insert Function Và Những Nhiệm Vụ Quan Trọng
2. Tại sao cần tìm dữ liệu trùng nhau?
- Đ⋰ng tin chính xác – Trùng lặp có thể làm sai lệch số liệu thống kê, báo cáo tài chính hoặc phân tích dữ liệu.
- Tiết kiệm thời gian và công sức – Khi trùng lặp được loại bỏ trước, bạn không phải làm việc lại trên những bản sao không cần thiết.
- Nâng cao độ tin cậy của dữ liệu – Khi dữ liệu được làm sạch (cleaned), các quyết định dựa trên BAY dữ liệu chính xác hơn.
- Phòng tránh lỗi trong quy trình tự động – Nếu dữ liệu trùng lặp được đưa vào một quy trình tự động, nó có thể gây ra lỗi hoặc lặp lại công việc.
Có thể bạn quan tâm: Tiện Ích Tách Gộp Họ Tên Trong Excel 2026
3. Chuẩn bị dữ liệu
Trước khi bắt đầu, bạn cần chuẩn bị hai file Excel mà bạn muốn so sánh. Có một số điều cần lưu ý:
- Định dạng dữ liệu: Đảm bảo rằng các cột dữ liệu mà bạn muốn so sánh có cùng kiểu dữ liệu (số, văn bản, ngày tháng).
- Bảo vệ dữ liệu: Nếu dữ liệu quan trọng, hãy sao lưu các file trước khi thực hiện bất kỳ thao tác nào.
- Xác định cột khóa: Cột khóa là cột mà bạn sẽ dùng để so sánh dữ liệu giữa hai file. Đó có thể là một cột duy nhất hoặc một tập hợp các cột.
Ví dụ: Giả ‘;
– File A: Danh sách khách hàng với cột “Mã Khách Hàng” và “Tên Khách Hàng”.
– File B: Đơn hàng với cột “Mã Khách Hàng” và “Ngày Đặt Hàng”.
Bạn muốn tìm ra những khách hàng trong File A mà đã đặt hàng trong File B.
4. Phương pháp 1: Sử dụng công thức Excel
4.1 Sử dụng hàm VLOOKUP (hoặc XLOOKUP trong Excel 365)
Công thức VLOOKUP là công cụ truyền thống để tìm giá trị trong một bảng. Tuy nhiên, để kiểm tra trùng lặp, bạn có thể đóng gói lại công thức trong một cột phụ.
=IF(ISNA(VLOOKUP(A2, 'B'!$A$2:$A$1000, 1, FALSE)), "Không trùng", "Trùng")
A2là giá trị trong file A mà bạn muốn tìm Bureau'B'!$A$2:$A$1000là dãy tìm kiếm trong file B1là cột trả về (ở đây là chính giá trị tìm)FALSEyêu cầu tìm kiếm chính xác
Nếu giá trị được tìm thấy, công thức trả về “Trùng”; nếu không, trả về “Không trùng”.
4.2 Sử dụng hàm COUNTIF
COUNTIF là một công cụ mạnh mẽ hơn, đặc biệt khi bạn muốn tìm trùng lặp trong một dãy lớn.
=IF(COUNTIF('B'!Bal, A2) > 0, "Trùng", "Không trùng")
COUNTIFđếm số lần xuất hiện của giá trị trong dãy tìm kiếm. Nếu >0, có trùng lặp.
4.3 Sử dụng hàm XLOOKUP (Excel 365)
XLOOKUP là một phiên bản nâng cao của VLOOKUP, cung cấp tính linh hoạt hơn và dễ đọc hơn.
=IF(ISNUMBER(XLOOKUP(A2, 'B'!$A$2:$A$1000, 'B'!$A$2:$A$100``` XLOOKUPtrả về giá trị nếu tìm thấy, hoặc lỗi nếu không. Bạn có thể kiểm tra lỗi delve.
5. Phương pháp 2: Conditional Formatting
Conditional Formatting (định dạng điều kiện) giúp bạn trực quan hóa dữ liệu trùng lặp bằng cách tô màu cho các ô có giá trị trùng lặp.
5.1 Bước thực hiện
- Chọn cột cần so sánh: Ví dụ, chọn cột A trong File A.
- Vào menu Conditional Formatting → New Rule → Use a formula to determine which cells to format.
- Nhập công лат:
=COUNTIF('B'!$A:$A, A1)>0
- Chọn kiểu định dạng: Chọn màu nền hoặc màu chữ.
- Xác nhận.
Bây giờ, bất kỳ ô nào có giá trị trùng lặp với File B sẽ được tô màu.
5.2 Ưu điểm và hạn chế
- Ưu điểm: Thích hợp cho việc kiểm tra nhanh, trực quan.
- Hạn chế: Không thể xuất dữ liệu trùng lặp ra một bảng riêng; chỉ là đánh dấu.
6. Phương pháp 3: Power Query

Có thể bạn quan tâm: Truy Xuất Dữ Liệu Từ Nhiều Bảng Trong Excel: Hướng Dẫn Chi Tiết Và Thực Tế
Power Query là công cụ mạnh mẽ trong Excel để nhập, làm sạch và chuyển đổi dữ liệu. Để tìm dữ liệu trùng lặp giữa hai file, bạn có thể thực hiện các bước sau:
6.1 Nhập dữ liệu
- Mở Excel, vào Data → Get Data → From File → From Workbook.
- Chọn File A và File B, tạo hai bảng truy vấn riêng.
6.2 Sử dụng tính năng “Merge”
- Chọn một truy vấn (ví dụ File A) → Home → Merge Queries.
- Chọn truy vấn khác (File B) và chỉ định cột khóa.
- Chọn chế độ Inner join để chỉ lấy các bản ghi có trùng lặp ở cả hai bảng.
6.3 Kết quả
- Power Query sẽ tạo một bảng mới chỉ chứa dữ liệu trùng lặp.
- Bạn có thể load bảng này vào Excel hoặc làm thêm các bước xử lý khác.
6.4 Ưu điểm
- Tự động cập nhật: Khi dữ liệu nguồn thay đổi, bạn chỉ ilanng refresh.
- Khả năng mở rộng: Đối với dữ liệu lớn, Power Query thường nhanh hơn công thức.
7. Phương pháp 4: Xử lý bằng VBA
Nếu bạn thực hiện thao tác này thường xuyên hoặc cần tự động hóa, VBA là lựa chọn tuyệt vời. Dưới đây là một ví dụ mã VBA để tìm dữ liệu trùng lặp.
Sub FindDuplicates() Dim wsA As Worksheet, wsB As Worksheet Dim rngA As Range, rngB As Range Dim cell As Range, resultRng As Range Dim dict As Object Set wsA = Workbooks("FileA.xlsx").Sheets("Sheet1") Set wsB = Workbooks("FileB.xlsx").Sheets("Sheet1") Set rngA = wsA.Range("A2:A" & wsA.Cells(wsA.Rows.Count, "A").End(xlUp).Row) Set rngB = wsB.Range("A2:A" & wsB.Cells(wsB.Rows.Count, "A").End(xlUp).Row) Set dict = CreateObject("Scripting.Dictionary") For Each cell In rngB dict(cell.Value) = True Next cell Set resultRng = wsA.Range("B2") For Each cell In rngA If dict.exists(cell.Value) Then resultRng.Value = "Trùng" Else resultRng.Value = "Không trùng" End If Set resultRng = resultRng.Offset(1, 0) Next cell
End Sub
- Mã này tạo một từ điển (dictionary) chứa dữ liệu từ File B, sau đó duyệt qua File A để kiểm tra trùng lặp.
- Kết quả được viết vào cột B của File A.
7.1 Lợi ích
- Tự động: Chỉ cần chạy macro, kết quả sẽ được cập nhật.
- Tùy biến: Bạn có thể mở rộng để kiểm tra nhiều cột, hoặc xuất dữ liệu trùng lặp ra một file mới.
8. So sánh hiệu suất và tính linh hoạt
| Phương pháp | Thời gian thực hiện | Độ phức tạp | Tính linh hoạt | Khả năng mở rộng |
|---|---|---|---|---|
| Công thức | Trung bình | Thấp | Trung bình | Giới hạn |
| Conditional Formatting | Nhanh | Thấp | Tốt cho trực quan | Không |
| Power Query | Nhanh (đối với dữ liệu lớn) | Trung bình | Rất cao | Cao |
| VBA | Nhanh (đối với dữ liệu lớn) | Trung bình | Rất cao | Cao klart |
- Công thức: Dễ học, nhanh cho dữ liệu nhỏ,_cn.
- Conditional Formatting: Tốt cho kiểm tra nhanh, không xuất dữ liệu.
- Power Query: Đặc biệt mạnh mẽ cho dữ liệu lớn, hỗ trợ nhiều bước xử lý.
- VBA: Tự động hóa cao, linh hoạt nhất, nhưng cần kiến thức lập trình.
9. Thực hành: Ví dụ cụ thể
Giả sử chúng ta có hai file:
KhachHang.xlsx(cột A:MaKH, cột B:TenKH).DonHang.xlsx(cột A:MaKH, cột B:NgayDH).
Mục tiêu: Tìm ra những khách hàng trong KhachHang.xlsx đã đặt hàng trong DonHang.xlsx.
9.1 Sử dụng công thức
Trong cột C của KhachHang.xlsx, nhập:
=IF(COUNTIF(DonHang.xlsxSheet1!$A:$A, A2)>0, "Đã đặt", "Chưa đặt")
Kéo công thức xuống hết hàng.
9.2 Sử dụng Power Query
- Nhập cả hai bảng vào Power Query.
- Merge bằng cột
MaKH(merge type: Inner join). - Load kết quả vào một sheet mới, rồi lọc theo cột
MaKH.
9.3 Xử lý với VBA
Sub CheckOrders() Dim wsKH As Worksheet, wsDH As Worksheet Dim rngKH As Range, rngDH As Range Dim cell As Range, dict As Object Set wsKH = Workbooks("KhachHang.xlsx").Sheets("Sheet1") Set wsDH = Workbooks("DonHang.xlsx").Sheets("Sheet1") Set rngKH = wsKH.Range("A2:A" & wsKH.Cells(wsKH.Rows.Count, "A").End(xlUp).Row) Set rngDH = wsDH.Range("A2:A" & wsDH.Cells(wsDH.Rows.Count, "A").End(xlUp).Row) Set dict = CreateObject("Scripting.Dictionary") For Each cell In rngDH dict(cell.Value) =ково Next cell For Each cell In rngKH If dict.exists(cell.Value) Then cell.Offset(0, 2).Value = "Đã đặt" Else cell.Offset(0, 2).Value = "Chưa đặt" End If Next cell
End Sub
10. Lưu ý khi limitless dữ liệu lớn
- Tối ưu công thức:crawl: Sử dụng
INDEX/MATCHthay vìVLOOKUPkhi cần tìm kiếm ở cột đầu tiên. - Giới hạn vùng: Tránh sử dụng
A:Atrong công thức; thay vào đó, xác định vùng có dữ liệu thực tế crossed. - Power Query: Tối ưu bằng cách giảm số bước và tránh việc tải lại toàn bộ dữ liệu.
- VBA: Dùng từ điển (dictionary) để giảm thời gian so sánh.
11. Kiểm SNC: Kiểm tra dữ liệu trùng lặp
Sau khi xác định được dữ liệu trùng lặp, bạn có thể thực hiện các hành động khác:
- Xóa dữ liệu trùng lặp: Sử dụng
Remove Duplicatestrong Excel. - Tạo báo cáo trùng lặp: Lưu trữ vào một sheet riêng, hoặc xuất ra file CSV.
- Hợp nhất dữ liệu: Sử dụng
Append Queriestrong Power Query để kết hợp dữ liệu.
12. Kết luận
Tìm kiếm dữ liệu trùng nhau trong hai file Excel là một kỹ năng thiết yếu cho bất kỳ nhà phân tích dữ liệu, kế toán, hay quản trị viên hệ thống nào. Với sự đa dạng của các công cụ trong Excel, từ công thức, Conditional Formatting, Power Query đến VBA, bạn có thể lựa chọn phương pháp phù hợp với quy trình làm việc, kích thước dữ liệu và mức độ tự động hóa mong muốn. Khi áp dụng đúng cách, việc phát hiện và xử lý dữ liệu trùng lặp sẽ giúp bạn tiết kiệm thời gian, giảm thiểu sai sót và nâng cao chất lượng dữ liệu, từ đó đưa ra những quyết định chính xác và hiệu quả hơn trong công việc.

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
