Trong môi trường làm việc hiện đại, Excel đã trở thành một trong những công cụ quản lý và phân tích dữ liệu phổ biến nhất. Tuy nhiên, khi làm việc với nhiều bộ dữ liệu, chúng ta thường gặp tình huống cần so sánh hai file Excel để kiểm tra sự khác biệt, xác định dữ liệu trùng lặp, hoặc hợp nhất thông tin. Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, toàn diện và thực tiễn về cách so sánh 2 file Excel, bao gồm các phương pháp thủ công, các hàm nội bộ, công cụ bên ngoài và các phần mềm hỗ trợ. Ngoài ra, chúng tôi sẽ trình bày các bước thực hiện cụ thể, kèm theo các ví dụ minh họa, lưu ý quan trọng và mẹo tối ưu hoá quy trình.
Có thể bạn quan tâm: Hàm Đổi Số Thành Chữ Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Lý Do Cần So Sánh 2 File Excel
1.1 Kiểm tra dữ liệu trùng lặp
Trong các dự án hợp tác, các bộ phận thường nhận cùng một danh sách khách hàng hoặc sản phẩm từ các nguồn khác nhau. So sánh giúp phát hiện những bản ghi đã tồn tại để tránh nhập liệu lặp.
1.2 Xác định sự thay đổi theo thời gian
Khi cập nhật dữ liệu định kỳ (hàng ngày, hàng tuần, hàng tháng), việc so sánh file hiện tại với file trước đó giúp chúng ta biết được những thay đổi, tăng/giảm số lượng, hoặc các giá trị đã thay đổi.
1.3 Đối chiếu báo cáo tài chính
Trong kế toán, việc so sánh báo cáo tài chính giữa các kỳ hoặc giữa các bộ phận là một yêu cầu quan trọng để phát hiện sai sót hoặc gian lận.
1.4 Hợp nhất dữ liệu
Khi cần ghép các bảng dữ liệu từ các nguồn khác nhau, việc so sánh trước khi hợp nhất giúp chúng ta hiểu rõ cấu trúc và độ tương đồng, từ đó quyết định cách ghép hợp lý.
Có thể bạn quan tâm: Cách Sử Dụng Hàm Vlookup Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Các Phương Pháp So Sánh 2 File Excel
2.1 So sánh thủ công (Visual Comparison)
- Ưu điểm: Đơn giản, không cần kỹ năng đặc biệt, phù hợp với tập tin nhỏ (< 100 dòng).
- Nhược điểm: Dễ bỏ sót, tốn thời gian, không khả thi với dữ liệu lớn.
2.2 Sử dụng hàm Excel nội bộ
- VLOOKUP / XLOOKUP: Tìm kiếm giá trị trong một bảng và trả về kết quả tương ứng.
- MATCH + INDEX: Tìm vị trí và trả về giá trị.
- COUNTIF / COUNTIFS: Đếm số lần xuất hiện của một giá trị.
- IFERROR: Xử lý lỗi khi không tìm thấy dữ liệu.
- Conditional Formatting: Đánh dấu các ô khác nhau.
2.3 Sử dụng Power Query (Get & Transform)
Power Query cho phép nhập, biến đổi và so sánh dữ liệu trong môi trường “Data Model”. Với tính năng Merge Queries, chúng ta có thể thực hiện so sánh dựa trên một hoặc nhiều cột khóa.
2.4 Sử dụng VBA (Macro)
Viết macro để tự động hoá quy trình so sánh, tạo báo cáo chi tiết, và highlight các ô khác nhau.
2.5 Sử dụng phần mềm bên thứ ba
- Beyond Compare: Công cụ so sánh tệp tin mạnh mẽ, hỗ trợ Excel.
- WinMerge: Miễn phí, hỗ trợ so sánh file CSV (có thể xuất Excel sang CSV).
- DiffEngineX: Đặc biệt thiết kế cho so sánh file Excel.
- Kutools for Excel: Add-in cung cấp tính năng “Compare Range” và “Compare Sheets”.
Có thể bạn quan tâm: Cách Căn Chỉnh Ô Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
3. Chuẩn Bị Dữ Liệu Trước Khi So Sánh
3.1 Đảm bảo cấu trúc đồng nhất
- Các cột phải có cùng tiêu đề và cùng thứ tự.
- Kiểm tra định dạng dữ liệu (text, number, date). Nếu có sự khác nhau, hãy chuyển về cùng một định dạng.
3.2 Loại bỏ khoảng trắng thừa
Sử dụng hàm TRIM để loại bỏ khoảng trắng đầu/cuối trong các ô text.
=TRIM(A2)
3.3 Xóa các dòng và cột không cần thiết
Loại bỏ các tiêu đề phụ, dòng tổng, hoặc cột meta không liên quan.
3.4 Chuẩn hoá ngày tháng
Sử dụng định dạng chuẩn yyyy-mm-dd để tránh lỗi so sánh.
=TEXT(A2,"yyyy-mm-dd")
3.5 Đánh dấu khóa (Key) duy nhất
Xác định một hoặc nhiều cột làm khóa chính (ví dụ: Mã khách hàng, Mã sản phẩm) để so sánh chính xác.
4. So Sánh Bằng Hàm Excel – Bước Chi Tiết

Có thể bạn quan tâm: Sửa Lỗi Font Chữ Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
4.1 Ví dụ thực tế
Giả sử có hai file:
– File A: DanhSach_KhachHang_A.xlsx
– File B: DanhSach_KhachHang_B.xlsx
Cả hai đều có các cột: MãKH, TênKH, Số điện thoại, Ngày sinh.
Bước 1: Mở cả hai file và tạo một file Master để thực hiện so sánh.
Bước 2: Sao chép dữ liệu từ mỗi file vào sheet riêng:
- Sheet1:
Data_A - Sheet2:
Data_B
Bước 3: Sử dụng công thức XLOOKUP để kiểm tra sự tồn tại của mỗi MãKH trong file B.
=IFERROR( XLOOKUP(@MãKH, Data_B!$A$2:$A$1000, Data_B!$A$2:$A$1000, "Không có"), "Không có"
)
Kết quả sẽ trả về “Không có” nếu MãKH không tồn tại trong file B, ngược lại trả về chính MãKH.
Bước 4: Đánh dấu các trường hợp khác nhau (ví dụ: số điện thoại khác)
=IF( XLOOKUP(@MãKH, Data_B!$A$2:$A$1000, Data_B!$C$2:$C$1000, "") <> @Số_điện_thoại, "Khác", "Giống"
)
Bước 5: Áp dụng Conditional Formatting
- Chọn vùng dữ liệu.
- Vào Home → Conditional Formatting → New Rule → Use a formula to determine which cells to format.
- Nhập công thức
=E2="Khác"và chọn màu nền đỏ để highlight.
4.2 Sử dụng COUNTIFS để tìm trùng lặp
=COUNTIFS(Data_B!$A$2:$A$1000,@MãKH)
Nếu giá trị >0, nghĩa là tồn tại trong file B.
4.3 So sánh toàn bộ hàng bằng CONCATENATE
Khi cần so sánh toàn bộ nội dung của một hàng:
=IF( CONCATENATE(A2,B2,C2,D2) = XLOOKUP(A2, Data_B!$A$2:$A$1000, Data_B!$B$2:$E$1000, ""), "Giống", "Khác"
)
5. So Sánh Bằng Power Query
Power Query cung cấp một giao diện trực quan và mạnh mẽ để thực hiện các phép biến đổi và so sánh.
5.1 Nhập dữ liệu
- Data → Get Data → From File → From Workbook.
- Chọn
DanhSach_KhachHang_A.xlsx, chọn sheetData_A→ Load To → Only Create Connection. - Lặp lại cho
Data_B.xlsx.
5.2 Thực hiện Merge (Join)
- Vào Data → Queries & Connections, mở Query Editor.
- Chọn Data_A, click Merge Queries → Merge Queries as New.
- Chọn Data_B làm bảng thứ hai.
- Chọn cột
MãKHở cả hai bảng làm Key. - Chọn loại Join:
- Left Anti Join: Lấy các bản ghi có trong A nhưng không có trong B.
- Right Anti Join: Ngược lại.
- Full Outer Join: Lấy tất cả bản ghi, cả trùng lặp và không trùng.
- Nhấn OK → Tạo một bảng mới
Merged.
5.3 Tạo cột so sánh chi tiết
- Sau khi merge, mở cột
Data_B(bấm vào biểu tượng mở rộng) và chọn các cột cần so sánh. - Thêm cột tùy chỉnh (Custom Column) để so sánh từng trường:
if TênKH = Data_B.TênKH then "Giống" else "Khác"
- Lặp lại cho các cột khác.
5.4 Tải kết quả về Excel
- Click Close & Load → Kết quả sẽ xuất ra một sheet mới, hiển thị các bản ghi khác nhau, trùng lặp và trạng thái so sánh.
5.5 Ưu điểm của Power Query
- Xử lý dữ liệu lớn (hàng triệu) nhanh chóng.
- Giữ lại lịch sử các bước biến đổi, dễ dàng tái sử dụng.
- Không cần viết mã, thân thiện với người dùng không chuyên.
6. So Sánh Bằng VBA – Tự Động Hóa Toàn Bộ Quy Trình
6.1 Khi nào dùng VBA?
- Khi cần lặp lại so sánh thường xuyên (hàng ngày, hàng tuần).
- Khi muốn tạo báo cáo chi tiết tự động (định dạng, màu sắc, file PDF).
- Khi muốn tích hợp vào quy trình công việc lớn hơn (ví dụ: macro chạy sau khi nhập dữ liệu).
6.2 Mẫu macro so sánh 2 sheet
Sub CompareSheets() Dim wsA As Worksheet, wsB As Worksheet, wsDiff As Worksheet Dim dict As Object Dim lastRowA As Long, lastRowB As Long, i As Long Dim key As String, val As Variant Set wsA = ThisWorkbook.Sheets("Data_A") Set wsB = ThisWorkbook.Sheets("Data_B") Set wsDiff = ThisWorkbook.Sheets.Add(After:=Sheets(Sheets.Count)) wsDiff.Name = "Differences" Set dict = CreateObject("Scripting.Dictionary") ' Đọc dữ liệu B vào dictionary (key = MãKH) lastRowB = wsB.Cells(wsB.Rows.Count, "A").End(xlUp).Row For i = 2 To lastRowB key = Trim(wsB.Cells(i, "A").Value) If Not dict.Exists(key) Then dict.Add key, wsB.Rows(i).Value End If Next i ' So sánh với A lastRowA = wsA.Cells(wsA.Rows.Count, "A").End(xlUp).Row Dim diffRow As Long: diffRow = 1 wsDiff.Cells(diffRow, 1).Resize(1, 5).Value = Array("MãKH", "Trường", "Giá trị A", "Giá trị B", "Ghi chú") diffRow = diffRow + 1 For i = 2 To lastRowA key = Trim(wsA.Cells(i, "A").Value) If dict.Exists(key) Then ' So sánh từng cột (giả sử B, C, D, E) Dim col As Long For col = 2 To 5 If wsA.Cells(i, col).Value <> dict(key)(1, col) Then wsDiff.Cells(diffRow, 1).Value = key wsDiff.Cells(diffRow, 2).Value = wsA.Cells(1, col).Value wsDiff.Cells(diffRow, 3).Value = wsA.Cells(i, col).Value wsDiff.Cells(diffRow, 4).Value = dict(key)(1, col) wsDiff.Cells(diffRow, 5).Value = "Khác nhau" diffRow = diffRow + 1 End If Next col dict.Remove key ' Đánh dấu đã so sánh Else wsDiff.Cells(diffRow, 1).Value = key wsDiff.Cells(diffRow, 5).Value = "Chỉ có trong A" diffRow = diffRow + 1 End If Next i ' Những key còn lại trong dict là chỉ có trong B Dim k As Variant For Each k In dict.Keys wsDiff.Cells(diffRow, 1).Value = k wsDiff.Cells(diffRow, 5).Value = "Chỉ có trong B" diffRow = diffRow + 1 Next k MsgBox "So sánh hoàn tất! Kết quả ở sheet '" & wsDiff.Name & "'.", vbInformation
End Sub
Giải thích nhanh:
- Dictionary lưu trữ dữ liệu của Sheet B, cho phép tra cứu O(1).
- Vòng lặp qua Sheet A để so sánh từng bản ghi.
- Các khác biệt được ghi vào một sheet mới “Differences”.
- Cuối cùng, các bản ghi chỉ xuất hiện trong B cũng được liệt kê.
6.3 Tối ưu hoá
- Khi dữ liệu lớn (> 100k dòng), nên chuyển sang Arrays để giảm thời gian truy cập ô.
- Sử dụng
Application.ScreenUpdating = FalsevàCalculation = xlCalculationManualtrong macro để tăng tốc.
7. So Sánh Bằng Phần Mềm Bên Thứ Ba
7.1 Beyond Compare
- Cách dùng: Mở chương trình → File → New Comparison → Chọn “Folder Compare” → Thêm hai file Excel → Chọn “Table Compare” để so sánh theo cột.
- Tính năng nổi bật: Highlight màu sắc, báo cáo chi tiết, khả năng lọc các cột không cần so sánh.
7.2 DiffEngineX
- Cài đặt: Cài đặt add-in cho Excel.
- Cách dùng: Vào DiffEngineX → Compare Sheets, chọn 2 sheet, thiết lập “Key Columns” và “Comparison Columns”. Kết quả sẽ đưa ra một sheet mới với các hàng khác nhau được đánh dấu.
7.3 Kutools for Excel – Compare Range
- Cách dùng: Vào Kutools → Compare → Compare Two Sheets.
- Tùy chọn: So sánh toàn bộ sheet, hoặc chỉ một vùng (range). Có thể xuất kết quả ra file mới hoặc highlight trực tiếp.
7.4 Khi nào nên dùng phần mềm bên thứ ba?
- Khi dữ liệu quá lớn và Excel nội bộ gặp giới hạn (hàng > 1,048,576).
- Khi cần báo cáo chuyên nghiệp, in ấn, hoặc tích hợp vào quy trình CI/CD.
- Khi muốn giao diện trực quan, không cần viết mã.
8. Các Bước Tổng Quát Để So Sánh 2 File Excel
| Bước | Nội dung | Công cụ đề xuất |
|---|---|---|
| 1 | Xác định mục tiêu so sánh (trùng lặp, thay đổi, hợp nhất) | – |
| 2 | Chuẩn hoá dữ liệu (định dạng, loại bỏ khoảng trắng) | Excel (TRIM, TEXT), Power Query |
| 3 | Xác định khóa (Key) (cột duy nhất) | – |
| 4 | Chọn phương pháp (hàm, Power Query, VBA, phần mềm) | – |
| 5 | Thực hiện so sánh (công thức, merge, macro) | Hàm, Power Query, VBA |
| 6 | Đánh dấu/Highlight (Conditional Formatting, màu) | Conditional Formatting, VBA |
| 7 | Tạo báo cáo (sheet tổng hợp, file PDF) | VBA, Power Query, phần mềm |
| 8 | Kiểm tra lại (đảm bảo không bỏ sót) | – |
| 9 | Lưu trữ và chia sẻ (đặt tên file, version) | OneDrive, SharePoint |
9. Những Lưu Ý Quan Trọng Khi So Sánh
- Độ chính xác của khóa: Nếu khóa không thực sự duy nhất, kết quả sẽ sai lệch. Cần kiểm tra tính duy nhất (COUNTIF >1).
- Định dạng ngày và số: Excel có thể lưu ngày dưới dạng số serial, gây ra so sánh sai nếu một file dùng định dạng text, file còn lại dùng date.
- Dữ liệu ẩn (Hidden rows/columns): Đảm bảo không có dữ liệu ẩn gây nhầm lẫn.
- Ngôn ngữ và ký tự đặc biệt: Khi so sánh các chuỗi tiếng Việt, cần xử lý dấu (accent) nếu cần (sử dụng hàm
SUBSTITUTEđể loại bỏ dấu). - Phiên bản Excel: Một số hàm (XLOOKUP, LET, LAMBDA) chỉ có trong Office 365/2026 trở lên. Nếu dùng phiên bản cũ, chuyển sang VLOOKUP + IFERROR.
- Hiệu năng: Khi dữ liệu > 50.000 dòng, tránh dùng công thức mảng toàn cột (A:A) vì sẽ làm Excel chậm. Chỉ dùng phạm vi thực tế hoặc Power Query.
10. Mẹo Tối Ưu Hóa Quy Trình So Sánh
- Sử dụng Table (Ctrl+T): Khi dữ liệu được định dạng dưới dạng Table, các công thức tự mở rộng khi thêm dòng mới.
- Dynamic Arrays (Office 365): Các hàm như
FILTER,UNIQUE,SORTgiúp rút gọn công thức. - Sử dụng Named Ranges: Đặt tên cho vùng dữ liệu (ví dụ:
tblA) để công thức dễ đọc hơn. - Batch Processing: Nếu cần so sánh nhiều file cùng lúc, viết macro lặp qua danh sách file trong một thư mục.
- Export sang CSV: Đối với các phần mềm không hỗ trợ Excel trực tiếp, xuất dữ liệu sang CSV để so sánh nhanh bằng Notepad++ hoặc WinMerge.
11. Kết Luận
So sánh 2 file Excel không chỉ là một công việc “kiểm tra” đơn thuần mà còn là một quá trình phân tích, kiểm soát chất lượng dữ liệu và chuẩn bị cho các bước tiếp theo như hợp nhất, báo cáo hay đưa ra quyết định. Tùy thuộc vào khối lượng dữ liệu, mức độ phức tạp và tần suất thực hiện, chúng ta có thể lựa chọn:
- Hàm nội bộ (VLOOKUP/XLOOKUP, COUNTIF) cho các trường hợp nhanh, dữ liệu vừa.
- Power Query cho dữ liệu lớn, cần biến đổi và lưu lịch sử.
- VBA khi muốn tự động hoá và tạo báo cáo tùy chỉnh.
- Phần mềm bên thứ ba khi cần độ chính xác cao, giao diện trực quan và báo cáo chuyên nghiệp.
Bằng cách tuân thủ quy trình chuẩn bị dữ liệu, xác định khóa duy nhất, và áp dụng công cụ phù hợp, bạn sẽ giảm thiểu lỗi, tiết kiệm thời gian và nâng cao chất lượng công việc. Hy vọng bài viết đã cung cấp cho bạn một “hộp công cụ” đầy đủ để giải quyết mọi nhu cầu so sánh 2 file Excel trong thực tiễn công việc hàng ngày. Chúc bạn thành công!

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