Compare two versions of an Excel file, cell by cell
Excel has no built-in way to line two versions of a file up and show what moved; Spreadsheet Compare exists only in some Office editions, on Windows. Save each version as CSV and compare the two by the column that identifies a row: added, removed and changed rows come out as separate lists, with the changed cells named.
Why looking side by side does not work
Two windows and a careful eye finds the first difference and misses the fifth. The usual formula trick — a third sheet of =A1<>Sheet2!A1 — compares positions, not records, so the moment one version has a row inserted or sorted differently, every cell below it lights up as changed.
What you want is a comparison by identity: the row for invoice 1042 in the old file against the row for invoice 1042 in the new one, wherever each happens to sit. That needs a column that identifies a row — an invoice number, an ID, an email — and it is how the compare page works.
Step one: turn each version into a CSV
In Excel, File › Save As › CSV UTF-8 writes the active sheet only, and writes numbers the way they are displayed — a long ID can come out as 1.23E+15. Dropping the workbook on the Excel converter here avoids both: every sheet is listed, and every value is kept as text exactly as stored. Do it for both versions and name the files so the older one is obvious.
Only values are compared: a cell that holds a formula is compared by the result Excel last saved for it, and formatting — colours, bold, column widths — is not part of either file once it is CSV.
Step two: compare by the identifying column
Drop the older file and the newer one on the compare page and pick the column that identifies the same record in both. The result is four lists — added, removed, changed, unchanged — with the changed rows showing which cells differ and both values. Each list downloads separately, so the changed rows can go straight to whoever needs to explain them.
The order of rows does not matter, and values are compared as text as written, so 1.10 and 1.1 count as a change: that is what a person reconciling two exports usually wants to know about.
The sample file
Obviously made-up data, small enough to read. Download it and drop it on the tool to see the fix before trying your own file.
Questions
- Can I drop the .xlsx files straight onto the compare page?
- Yes. Drop the .xlsx on the page and its first sheet with data is read as the table, every value kept as the text Excel stored — a customer number keeps its leading zeros. To use a different sheet, the Excel converter here lists them all: convert that one and use the CSV it gives you.
- Which sheet gets compared?
- Whichever you convert. The Excel converter lists every sheet in the workbook, hidden ones included; convert the same sheet from each version and compare those two CSVs.
- Does it compare formulas or formatting?
- Values only. A formula is compared by the result saved in the file, and colours, fonts and column widths are not part of a CSV, so they are neither compared nor reported.
- What if the rows are in a different order in the two versions?
- It makes no difference. Rows are matched by the identifying column you choose, not by position, so a re-sorted file with no real changes reports none.
- What if a column was added or removed between versions?
- Columns present in only one file are reported as such, and the comparison runs over the columns the two have in common.
- Are my files changed by any of this?
- No. The converter writes new CSV files and the comparison produces reports; the workbooks you started with are untouched.
- Is anything uploaded?
- No. Both workbooks are unzipped and read in your browser, sheet by sheet, and the comparison runs on the same machine. Turn your connection off once the page has loaded and every step still works.