Last updated on November 15, 2018

5 tools to compare Excel files

Posted by Felix Zumstein - Comments

Comparing text files is easy, but comparing Excel files not so much. The fact that Excel is a two dimensional grid with formulas that contain relative cell references makes it quite a challenge. Accordingly, there are only a few tools available that claim to do the job. Let’s see what our options are! In the first part of the post, we’re comparing the features of the tested tools before we get into the details of how well each tool is doing with regards to our test case scenario.

Table of Contents

  1. Excel File Comparison Tools Overview
  2. Test Case Specifications
  3. Test Results
  4. Test Details
  5. Conclusion

Excel File Comparison Tools Overview

Supported File Formats

  xltrail Synkronizer Spreadsheet Compare xlCompare DiffEngineX
xlsx
xlsm
xlsb
xlam
xltm
xls

Compares

  xltrail Synkronizer Spreadsheet Compare xlCompare DiffEngineX
Formulas
Entered Values
Calculated Values
VBA Code

Characteristics

  xltrail Synkronizer Spreadsheet Compare xlCompare DiffEngineX
Runs on Windows
Runs on Mac
Runs on Linux
Works without Excel
Type of Software Browser app Excel add-in Desktop app Desktop app Desktop app
Company Zoomer Analytics XL Consulting Microsoft SpreadsheetTools DiffEngineX

Test Case Specifications

test case

We’re starting with a simple Workbook (sales_plan_v1.xlsm) with some merged cells and a few lines of VBA code. We then create a second version (sales_plan_v2.xlsm) of the workbook by introducing the following changes:

  1. Changing Cell D12 from a formula to a value
  2. Inserting a new row at position 11
  3. Deleting Column F
  4. Adding a second sheet
  5. Changing the existing VBA code
  6. Adding a new VBA module

Disappointingly, merged cells and column/row operations make most of the tools unusable as only two (xltrail and Synkronizer) manage to show the correct changes without manual intervention or without ignoring a change or introducing noise, i.e. a set of changes that makes it hard to understand what’s going on.

Test Results

Green means that the change has been properly recognized.

  xltrail Synkronizer Spreadsheet Compare xlCompare DiffEngineX
Change Cell D12
Insert Row 11
Delete Col F
Sheet added
VBA module added
VBA module changed
Comments     Shows spurious changes both for rows and VBA modules   Requires to manually set a col/row “primary key” for each sheet

Test Details

xltrail

xltrail is a web based tool similar to GitHub that doesn’t just compare 2 Excel files but also keeps a version history of them.

It presents changes between two versions in an overview page with all the VBA code changes on a single page (red means old/deleted while green means new/added):

xltrail vba comparison

The sheet differences are presented in a unified view with a list of changes on the side bar on the right hand side:

xltrail sheet comparison

For a step-by-step tutorial on how to use xltrail to compare two files see my other blog post

Synkronizer

Apart from xltrail, Synkronizer is the only tool that gets all the changes on the sheet correctly without manual intervention. It shows them by arranging the original workbooks next to each other and changing the colors of the cells (in both files):

Synkronizer diff sheets

It feels a bit irritating though that Synkronizer changes the original files by applying the color coding, so when you close them, you get asked if you want to undo the highlighting:

Synkronizer diff sheets

Spreadsheet Compare

Spreadsheet Compare is a free desktop app, but it is only included in specific versions of Microsoft Excel (Office Professional Plus since version 2013 and Office 365 ProPlus). It can also be started via the Inquire add-in from within Excel.

SpreadsheetCompare sheet comparison

While it does recognize that row 11 was inserted, it adds noise around it (Deleted Row 12 and Added Row 13). It misses the cell change and also introduces cryptic text for the VBA part of the new sheet (Sheet2).

Finally, while you do get a diff for VBA (a single module only at a time), there’s room for improvement with regards to the visual representation:

SpreaSpreadsheetCompare vba Comparsion

xlCompare

xlCompare seems to be getting confused because of the merged cells and row/columns operations. For this example, the sheet diff view doesn’t seem to make any sense and a long list of changed cells is presented:

xlCompare sheet comparison

On the VBA side, it does a good job by showing a nice diff for the changed module and listing the new module correctly, too:

xlCompare vba comparison

DiffEngineX

If column/row operations are involved, DiffEngineX requires you to select a “primary key” for each sheet and for both, rows and columns. This is clearly not scalable if you ever need to compare a workbook with more than one sheet (or a few workbooks):

DiffEngineX Align Rows

DiffEngineX Align Columns

By selecting the right columns (B/C) and rows (5), DiffEngineX manages to show the correct differences:

DiffEngineX Diff Sheets

But don’t you dare to select the wrong key or you won’t be able to make sense out of the comparison anymore! The following screenshot shows the effect if you select only column B instead of B and C toghether as the column key:

DiffEngineX Diff Sheets Details

Additionally, DiffEngineX produces a report in Excel with all the changes:

DiffEngineX Report

Conclusion

Excel files are difficult to compare (stay tuned for a future blog post that looks more into the details of why that is) and accordingly, good tools are hard to find. Please leave a comment if you are using any other tools for comparing Excel files!