Cách So Sánh 2 File Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao

Trong môi trường làm việc hiện đại, Excel là một trong những công cụ quan trọng giúp chúng ta quản lý, phân tích và trình bày dữ liệu một cách hiệu quả. Tuy nhiên, trong quá trình làm việc, chúng ta thường gặp phải tình huống cần so sánh hai file Excel để kiểm tra sự khác biệt, tìm ra lỗi nhập liệu, hoặc cập nhật dữ liệu mới. Việc so sánh hai file Excel không chỉ giúp tiết kiệm thời gian mà còn giảm thiểu rủi ro sai sót. Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ các cách so sánh cơ bản trong Excel cho tới các phương pháp nâng cao sử dụng các công cụ bên ngoài và lập trình VBA.

1. Tại sao cần so sánh 2 file Excel?

Trước khi đi vào các phương pháp, chúng ta hãy hiểu rõ những lý do phổ biến khiến người dùng cần so sánh hai file Excel:

Lý doMô tả
Kiểm tra dữ liệu nhập lạiKhi dữ liệu được nhập từ nhiều nguồn, cần xác định xem có sự trùng lặp hay thiếu sót không.
So sánh phiên bảnKhi một file được cập nhật thường xuyên, cần biết những thay đổi so với phiên bản trước.
Đối chiếu báo cáoHai báo cáo cùng nội dung nhưng do người khác thực hiện, cần xác nhận tính nhất quán.
Phát hiện lỗiSo sánh giúp nhanh chóng phát hiện ô bị sai định dạng, công thức lỗi, hoặc giá trị ngoại lệ.

Hiểu rõ mục đích sẽ giúp bạn lựa chọn phương pháp so sánh phù hợp nhất.

2. Các cách so sánh 2 file Excel trong Excel

2.1. Sử dụng tính năng “Compare and Merge Workbooks” (Excel 2026 trở lên)

Lưu ý: Tính năng này chỉ khả dụng trong phiên bản Excel cho Windows và yêu cầu các workbook phải được lưu dưới dạng .xls hoặc .xlsx và có cùng cấu trúc (cùng số sheet, cùng tên sheet).

Bước thực hiện:

  1. Mở một trong hai file mà bạn muốn so sánh.
  2. Vào Review → Compare and Merge Workbooks (Nếu không thấy, vào File → Options → Customize Ribbon → Main Tabs → Review và bật tính năng).
  3. Trong hộp thoại hiện ra, chọn file còn lại và nhấn OK.
  4. Excel sẽ hiển thị các ô đã thay đổi bằng màu nền khác nhau, cho phép bạn xem chi tiết.

Ưu điểm:
– Giao diện trực quan, không cần cài đặt phần mềm bổ sung.
– Tự động đánh dấu các thay đổi.

Nhược điểm:
– Yêu cầu cấu trúc file giống hệt nhau.
– Không hỗ trợ so sánh công thức chi tiết.

2.2. Sử dụng công cụ “Inquire” (Excel Professional Plus)

Excel Professional Plus và một số gói Office 365 có tích hợp add‑in Inquire. Add‑in này cung cấp một bộ công cụ mạnh mẽ để phân tích, so sánh và kiểm tra workbook.

Cách bật Inquire:

  1. File → Options → Add‑Ins.
  2. Ở mục Manage, chọn COM Add‑ins → Go….
  3. Đánh dấu Inquire → OK.

Sử dụng Compare Files:

  1. Vào Inquire → Compare Files.
  2. Chọn Original File và Modified File.
  3. Nhấn OK.
  4. Kết quả sẽ hiển thị trong một cửa sổ mới, liệt kê chi tiết các thay đổi: giá trị, công thức, định dạng, VBA, v.v.

Ưu điểm:
– So sánh chi tiết cả công thức, định dạng, macro.
– Giao diện báo cáo rõ ràng, có thể xuất ra PDF.

Nhược điểm:
– Chỉ có trong các phiên bản cao cấp.
– Đôi khi báo cáo quá chi tiết, gây khó khăn trong việc tập trung vào những điểm quan trọng.

2.3. Sử dụng công thức “IF” và “VLOOKUP” (hoặc XLOOKUP)

Khi hai file có cấu trúc tương tự (cùng cột, cùng thứ tự), bạn có thể tạo một sheet mới để so sánh bằng công thức.

Ví dụ: So sánh cột A (Mã sản phẩm) và cột B (Giá) giữa File1.xlsx và File2.xlsx.

  1. Mở File1.xlsx, tạo một sheet mới, đặt tên “SoSanh”.
  2. Trong ô C2, nhập công thức:
=IFERROR(IF(VLOOKUP(A2,'File2.xlsxSheet1'!$A:$B,2,FALSE)=B2,"✅ Trùng khớp","❌ Giá khác"),"⚠️ Không tìm thấy")
  1. Kéo công thức xuống toàn bộ danh sách.

Giải thích:
– VLOOKUP tìm giá trị tương ứng trong File2 dựa trên Mã sản phẩm.
– Nếu giá trị trả về bằng với giá trong File1, hiển thị “✅ Trùng khớp”.
– Nếu không, hiển thị “❌ Giá khác”.
– IFERROR xử lý trường hợp không tìm thấy mã sản phẩm.

Sử dụng XLOOKUP (Excel 365/2026):

=IFERROR(IF(XLOOKUP(A2,'File2.xlsxSheet1'!$A:$A,'File2.xlsxSheet1'!$B:$B)=B2,"✅ Trùng khớp","❌ Giá khác"),"⚠️ Không tìm thấy")

Ưu điểm:
– Linh hoạt, không cần add‑in.
– Có thể tùy chỉnh để so sánh nhiều cột cùng lúc.

Nhược điểm:
– Cần kiến thức công thức.
– Khi dữ liệu lớn, công thức có thể làm chậm file.

2.4. Sử dụng Conditional Formatting (Định dạng có điều kiện)

Nếu mục tiêu chỉ là đánh dấu các ô khác nhau, Conditional Formatting là cách nhanh chóng.

Cách thực hiện:

  1. Mở File1.xlsx và File2.xlsx đồng thời.
  2. Trong File1, chọn vùng dữ liệu cần so sánh (ví dụ A2:C100).
  3. Vào Home → Conditional Formatting → New Rule → Use a formula to determine which cells to format.
  4. Nhập công thức (giả sử so sánh với File2 cùng vùng A2:C100):
= A2 <> 'File2.xlsxSheet1'!A2
  1. Chọn màu nền (ví dụ đỏ) → OK.

Excel sẽ tự động tô màu các ô có giá trị khác nhau giữa hai file.

Ưu điểm:
– Nhanh, không cần viết công thức phức tạp.
– Dễ xem trực quan.

Nhược điểm:
– Chỉ hiển thị sự khác biệt, không cung cấp chi tiết.
– Khi dữ liệu không đồng nhất (số dòng khác nhau), cần điều chỉnh thủ công.

3. Các công cụ bên ngoài hỗ trợ so sánh Excel

3.1. Beyond Compare

Beyond Compare (by Scooter Software) là một phần mềm so sánh tập tin mạnh mẽ, hỗ trợ so sánh nội dung bảng tính.

Cách sử dụng:

  1. Mở Beyond Compare → File Compare → Chọn Excel ở mục File Type.
  2. Chọn hai file Excel cần so sánh.
  3. Phần mềm sẽ hiển thị các sheet, dòng và ô khác nhau, cho phép bạn merge (kết hợp) hoặc export báo cáo.

Ưu điểm:
– Hỗ trợ so sánh nhiều sheet cùng lúc.
– Có khả năng so sánh cả nội dung macro và định dạng.
– Tích hợp với hệ thống version control.

Nhược điểm:
– Phải mua bản quyền (phiên bản trial giới hạn).
– Giao diện không quen thuộc với người dùng Excel thuần.

3.2. WinMerge

WinMerge là một công cụ mã nguồn mở, thường dùng để so sánh file văn bản, nhưng cũng có plugin hỗ trợ Excel.

Cách cài đặt plugin:

  1. Tải và cài đặt WinMerge.
  2. Tải plugin ExcelCompare từ GitHub.
  3. Cấu hình plugin trong WinMerge → Options → Plugins.

Sau khi cài, bạn có thể kéo‑thả hai file Excel vào WinMerge và xem sự khác biệt.

Ưu điểm:
– Miễn phí, nhẹ.
– Hỗ trợ so sánh nhanh các file .csv (được lưu từ Excel).

Nhược điểm:
– Không hiển thị định dạng, công thức chi tiết.
– Cần cài đặt và cấu hình plugin.

3.3. DiffEngineX

DiffEngineX là một add‑in dành riêng cho Excel, cho phép so sánh và tạo báo cáo chi tiết.

Cách sử dụng:

  1. Cài đặt DiffEngineX (có bản trial).
  2. Mở Excel → DiffEngineX → Compare Files.
  3. Chọn file gốc và file mới.
  4. Lựa chọn mức độ chi tiết (giá trị, công thức, định dạng).
  5. Nhấn Compare → Kết quả xuất ra một sheet mới với danh sách các khác biệt.

Ưu điểm:
– Báo cáo chi tiết, có thể xuất ra HTML hoặc CSV.
– Hỗ trợ so sánh macro và bảng tính lớn.

Nhược điểm:
– Phải mua bản quyền cho sử dụng lâu dài.
– Không tích hợp sẵn trong Excel, cần cài đặt add‑in.

Cách So Sánh 2 File Excel
Cách So Sánh 2 File Excel

4. So sánh Excel bằng VBA (Macro)

Khi cần tự động hoá quá trình so sánh, VBA là một lựa chọn mạnh mẽ. Dưới đây là một ví dụ macro so sánh hai workbook và ghi lại các ô khác nhau vào một sheet “KếtQuả”.

Option Explicit Sub CompareWorkbooks() Dim wb1 As Workbook, wb2 As Workbook Dim ws1 As Worksheet, ws2 As Worksheet Dim diffSheet As Worksheet Dim r1 As Range, r2 As Range Dim maxRow As Long, maxCol As Long Dim i As Long, j As Long Dim diffCount As Long '--- Đặt đường dẫn hoặc mở file --- Set wb1 = Workbooks.Open("C:\Data\File1.xlsx") Set wb2 = Workbooks.Open("C:\Data\File2.xlsx") Set ws1 = wb1.Sheets(1) ' Giả sử so sánh sheet 1 Set ws2 = wb2.Sheets(1) ' Tạo sheet lưu kết quả On Error Resume Next Set diffSheet = wb1.Sheets("KếtQuả") If diffSheet Is Nothing Then Set diffSheet = wb1.Sheets.Add(After:=wb1.Sheets(wb1.Sheets.Count)) diffSheet.Name = "KếtQuả" End If On Error GoTo 0 diffSheet.Cells.Clear diffSheet.Range("A1:D1").Value = Array("Ô", "Giá trị File1", "Giá trị File2", "Ghi chú") diffCount = 1 ' Xác định kích thước vùng dữ liệu lớn nhất maxRow = Application.WorksheetFunction.Max(ws1.UsedRange.Rows.Count, ws2.UsedRange.Rows.Count) maxCol = Application.WorksheetFunction.Max(ws1.UsedRange.Columns.Count, ws2.UsedRange.Columns.Count) For i = 1 To maxRow For j = 1 To maxCol Set r1 = ws1.Cells(i, j) Set r2 = ws2.Cells(i, j) If CStr(r1.Value) <> CStr(r2.Value) Then diffCount = diffCount + 1 diffSheet.Cells(diffCount, 1).Value = ws1.Name & "!" & r1.Address diffSheet.Cells(diffCount, 2).Value = r1.Value diffSheet.Cells(diffCount, 3).Value = r2.Value diffSheet.Cells(diffCount, 4).Value = "Khác nhau" End If Next j Next i MsgBox "Hoàn thành! Có " & diffCount - 1 & " ô khác nhau.", vbInformation
End Sub

Giải thích code:

DòngNội dung
Set wb1 = Workbooks.Open(...)Mở file gốc.
Set wb2 = Workbooks.Open(...)Mở file mới.
maxRow, maxColXác định vùng dữ liệu lớn nhất để lặp.
If CStr(r1.Value) <> CStr(r2.Value)So sánh giá trị dưới dạng chuỗi để tránh lỗi kiểu dữ liệu.
diffSheetSheet lưu kết quả, tạo mới nếu chưa tồn tại.
MsgBoxThông báo số ô khác nhau.

Mở rộng:
– Thêm kiểm tra công thức (r1.HasFormula).
– Đánh dấu ô khác nhau bằng màu nền (r1.Interior.Color = vbYellow).
– So sánh nhiều sheet bằng vòng lặp For Each ws In wb1.Sheets.

Khi nào nên dùng VBA?

  • Khi cần so sánh định kỳ (hàng ngày/tuần).
  • Khi dữ liệu quá lớn, các công cụ GUI chậm.
  • Khi muốn tự động tạo báo cáo và gửi email.

5. So sánh dữ liệu CSV – Phương pháp nhanh cho dữ liệu lớn

Nhiều khi, dữ liệu Excel được xuất ra CSV để xử lý. So sánh file CSV có thể thực hiện nhanh hơn bằng PowerShell, Python, hoặc Linux diff.

5.1. Sử dụng PowerShell

# Đọc hai file CSV
$old = Import-Csv -Path "C:\Data\File1.csv"
$new = Import-Csv -Path "C:\Data\File2.csv" # So sánh dựa trên cột "ID"
$diff = Compare-Object -ReferenceObject $old -DifferenceObject $new -Property ID,Price,Qty -PassThru # Xuất ra file kết quả
$diff | Export-Csv -Path "C:\Data\DiffResult.csv" -NoTypeInformation

5.2. Sử dụng Python (pandas)

import pandas as pd df1 = pd.read_excel('File1.xlsx')
df2 = pd.read_excel('File2.xlsx') # Giả sử cột 'Mã' là khóa chính
merged = df1.merge(df2, on='Mã', how='outer', suffixes=('_old', '_new'), indicator=True) # Các dòng chỉ xuất hiện trong một file
only_in_old = mergedmerged'_merge' == 'left_only'
only_in_new = mergedmerged'_merge' == 'right_only' # Các dòng có giá trị khác nhau
diff = merged(merged'_merge' == 'both') & (merged.filter(like='_old').values != merged.filter(like='_new').values).any(axis=1) print('Chỉ có trong File1:', only_in_old.shape0)
print('Chỉ có trong File2:', only_in_new.shape0)
print('Có giá trị khác:', diff.shape0)

Ưu điểm:
– Xử lý dữ liệu lớn (hàng triệu) nhanh hơn so với Excel.
– Linh hoạt, có thể tự động hoá và tích hợp vào pipeline.

Nhược điểm:
– Yêu cầu kiến thức lập trình.
– Không thân thiện với người dùng không quen code.

6. Những lưu ý quan trọng khi so sánh Excel

Lưu ýMô tảCách khắc phục
Định dạng ngàyNgày có thể hiển thị khác nhau (dd/mm/yyyy vs mm/dd/yyyy) nhưng giá trị thực tế giống.Chuyển sang định dạng số nguyên ngày (=DATEVALUE) trước khi so sánh.
Số thập phânSố 1.200 và 1,200 (dấu phân cách thập phân) gây lỗi.Đặt Regional Settings thống nhất hoặc dùng VALUE(TEXT(...)).
Dòng trốngMột file có dòng trống, file còn lại không, làm lệch vị trí so sánh.Sắp xếp dữ liệu theo khóa (ID) trước khi so sánh.
Công thức vs Giá trịKhi một ô chứa công thức, giá trị hiển thị có thể giống nhưng công thức khác.Sử dụng HasFormula trong VBA hoặc Inquire để kiểm tra công thức.
Độ lớn fileFile > 10 MB có thể làm Excel chậm, các add‑in cũng phản hồi kém.Chia file thành các phần nhỏ, hoặc chuyển sang CSV và dùng Python/PowerShell.
Quyền truy cậpKhi file được mở trên SharePoint/OneDrive, có thể có phiên bản “đọc‑chỉ”.Đảm bảo file được tải về máy cục bộ hoặc mở ở chế độ Edit.

7. Quy trình chuẩn để so sánh 2 file Excel trong môi trường doanh nghiệp

  1. Xác định mục tiêu so sánh (giá trị, công thức, định dạng).
  2. Chuẩn hoá dữ liệu:
  3. Đảm bảo cùng định dạng ngày, số.
  4. Loại bỏ khoảng trắng thừa (TRIM).
  5. Sắp xếp theo khóa chính.
  6. Lựa chọn công cụ:
  7. Nếu chỉ cần nhanh, dùng Conditional Formatting hoặc VLOOKUP.
  8. Nếu cần báo cáo chi tiết, dùng Inquire hoặc DiffEngineX.
  9. Nếu muốn tự động hoá, phát triển macro VBA hoặc script Python.
  10. Thực hiện so sánh:
  11. Chạy công cụ, ghi lại kết quả.
  12. Kiểm tra mẫu ngẫu nhiên để đảm bảo độ chính xác.
  13. Xử lý kết quả:
  14. Đánh dấu, cập nhật dữ liệu, hoặc tạo báo cáo.
  15. Gửi báo cáo cho các bên liên quan.
  16. Lưu trữ phiên bản:
  17. Đặt tên file theo ngày (File1_20230624.xlsx).
  18. Lưu bản sao đã so sánh ở thư mục Archive.

8. Một số mẹo nâng cao

8.1. Sử dụng Power Query để “Merge” và so sánh

Power Query (Get & Transform) cho phép ghép (merge) hai bảng dựa trên khóa và sau đó tạo cột so sánh.

Cách thực hiện:

  1. Data → Get Data → From File → From Workbook. Nhập cả hai file.
  2. Trong Power Query Editor, chọn Home → Merge Queries.
  3. Chọn cột khóa (ví dụ “Mã”) ở cả hai bảng, kiểu join Full Outer.
  4. Sau khi merge, mở cột mới (bảng con) và chọn các cột cần so sánh.
  5. Thêm cột tùy chỉnh:
= if Table1.Price = Table2.Price then "✅" else "❌"
  1. Load kết quả về Excel.

Ưu điểm:
– Xử lý dữ liệu lớn, không làm Excel “đơ”.
– Có thể lưu lại truy vấn và tái sử dụng.

8.2. So sánh macro (VBA) và macro (Python) trong cùng một workflow

Bạn có thể gọi script Python từ VBA để tận dụng sức mạnh tính toán của pandas, đồng thời vẫn giữ giao diện Excel.

Sub RunPythonCompare() Dim shell As Object Set shell = CreateObject("WScript.Shell") shell.Run "python C:\Scripts\compare_excel.py", 1, True MsgBox "So sánh hoàn tất, kiểm tra file kết quả."
End Sub

Trong compare_excel.py, thực hiện so sánh và lưu file Result.xlsx. Khi script chạy xong, Excel sẽ tự động mở file kết quả.

8.3. Đánh dấu ô khác nhau bằng màu động (Dynamic Highlight)

Sử dụng Conditional Formatting kết hợp với hàm CELL("address") để tạo quy tắc màu tự động khi người dùng thay đổi giá trị.

=AND($A2<>INDIRECT("'File2.xlsxSheet1'!A"&ROW()))

Quy tắc này sẽ luôn so sánh ô hiện tại với ô cùng vị trí trong file khác, giúp bạn phát hiện ngay khi nhập sai.

9. Kết luận

Việc so sánh 2 file Excel không còn là công việc “có thể mất hàng giờ” nếu bạn biết cách tận dụng các tính năng sẵn có trong Excel, các add‑in chuyên dụng, hoặc các công cụ lập trình. Tùy thuộc vào độ phức tạp, khối lượng dữ liệu, và môi trường làm việc (cá nhân, nhóm, doanh nghiệp), bạn có thể chọn:

Mức độPhương pháp đề xuất
Cơ bảnConditional Formatting, VLOOKUP/XLOOKUP.
Trung bìnhInquire, Compare and Merge Workbooks, Power Query.
Nâng caoDiffEngineX, Beyond Compare, VBA, Python (pandas).
Lập trình & tự động hoáVBA macro, PowerShell, Python script.

Hãy luôn chuẩn hoá dữ liệu trước khi so sánh, lưu trữ phiên bản và đánh dấu kết quả một cách rõ ràng để mọi người trong nhóm có thể hiểu nhanh. Khi áp dụng đúng công cụ và quy trình, việc so sánh Excel sẽ trở thành một phần trơn tru, chính xác và tiết kiệm thời gian trong công việc hằng ngày của bạn.

Chúc bạn thành công! Nếu còn thắc mắc hoặc muốn chia sẻ kinh nghiệm của mình về việc so sánh Excel, đừng ngần ngại để lại bình luận ở phía dưới. Hãy cùng nhau xây dựng một cộng đồng làm việc hiệu quả hơn!

⚠️
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