Compare two exports and see exactly what changed
Compare two spreadsheet exports by a key column and get exact counts of what was added, removed and changed — including a route for files too large to compare in the page.
Why you’d do this
“What changed between this week’s export and last week’s?” is a question that’s easy to ask and slow to answer by eye — scrolling two spreadsheets side by side catches obvious differences and misses quiet ones, like a price that moved by a cent or a status that flipped for one row out of thousands. A price list, an inventory export, a membership roster: any file you re-export on a schedule eventually needs this same check, and doing it reliably means matching rows by whatever actually identifies them, not by which line they happen to sit on.
How, with the named tool
Compare CSV matches two files by a key column and reports exactly what was added, removed and changed. Join CSV is the tool to reach for instead when what you actually need is the two files combined into one, not a change report.
- Choose both files. Pick the older version in the box marked A and the newer one in the box marked B.
- Pick the key column. The “Key column” menu only lists headers both files share — choose whichever one identifies a row uniquely, such as a product ID, an email address, or an order number. Rows are matched by this value, not by which line they’re on, so reordered rows still compare correctly.
- Run the comparison. Tap Compare to get counts of rows Added, Removed and Changed between the two files.
- Export the diff. Tap “Export diff (CSV)” to save one file listing those rows, each tagged in a “change” column as added, removed or changed — so you can review the actual differences rather than just the counts.
If what you need is different — combining two files by a shared column rather than diffing them — Join CSV picks a column on each side to match on, then lets you keep only matching rows, every row from the first file, or only the first file’s unmatched rows, and shows exact counts for matched and unmatched rows on export.
What to watch for
Choosing the wrong key column produces a comparison that doesn’t mean anything. A key has to identify the same real-world thing in both files — a product ID or email address works because it doesn’t change between exports; a column like “price” or “status” doesn’t, because using it as the key would match rows by their price rather than by which product they describe. If a value in your chosen key column repeats more than once in a file, the in-page comparison keeps only the last row carrying it, so a non-unique key silently drops the earlier duplicates from the count.
A blank cell and a missing value aren’t quite the same thing, and the tool is explicit about both. An empty cell still counts as a real value — “” — and compares normally against another empty cell or a filled one. What Compare CSV reports as changed is a cell whose content actually differs between the two files, which includes a cell that went from blank to filled, or from filled to blank — that’s a real, reportable change, not something the tool quietly ignores just because one side was empty.
CSV and TSV files have no fixed size limit — Excel and JSON files do. Up to 25 MB, both files compare directly in the page. Past that, for CSV or TSV specifically, Compare CSV offers an on-device database engine: a one-time download of about 7 MB, kept on your device afterward, that reads the files from disk instead of loading them fully into memory. It’s optional — you choose to download it — and nothing about either file is uploaded anywhere at any point, on either route. Excel (.xlsx/.xls) and JSON files stay capped at 25 MB each either way, since the large-file engine can’t read those formats.
FAQ
What should I use as the key column?
Whatever value uniquely identifies a row and stays the same between exports — a product ID, an order number, an email address. Avoid a column whose value is expected to change (like a price or a status), since that’s exactly what you want the comparison to detect, not what you want it to match rows on.
My files are bigger than 25 MB — can I still compare them?
Yes, if they’re CSV or TSV: Compare CSV offers a one-time, roughly 7 MB engine download that lets it read files of any size from disk rather than loading them into memory. It only downloads if you choose it, and neither file is ever uploaded — the comparison still runs entirely on your device. Excel and JSON files remain capped at 25 MB, since that engine can’t read those formats.
Does an empty cell count as a change if it becomes filled in?
Yes. An empty cell is treated as a real (blank) value, so a cell that goes from blank in the old file to filled in the new one — or the other way around — is reported as a changed row, not skipped just because one side had nothing in it.
Open the tool
Spot exactly which rows were added, removed or edited
Combine two files on a shared column and see what did not match