Check & prepare data

Compare CSV Files by Key

Match unique identifiers across exports and review added, removed and changed records with per-field differences.

Work stays in your browserLocal tool processing

Upload both exports and enter a shared unique key column.

Private by designYour input stays on your device. Processing happens in this browser.
Your workspace

Start with a file

CSV, TSV, or TXT · UTF-8 only · up to 10 MB. Original text and identifiers are retained; parsing happens when you run. Drop here, or use the file picker.

CSV, TSV, or TXT · UTF-8 only · up to 10 MB. Original text and identifiers are retained; parsing happens when you run. Drop here, or use the file picker.

Paste first CSV instead (optional)

Optional alternative to a file. Editing this text removes its selected file; source text is never reformatted during loading.

Paste second CSV instead (optional)

Optional alternative to a file. Editing this text removes its selected file; source text is never reformatted during loading.

Comparison settings

Leave blank to detect comma, semicolon, tab, or pipe. Otherwise enter one character.
Leave blank to detect comma, semicolon, tab, or pipe. Otherwise enter one character.
Use an exact header name. Leave blank to use the first column.
Ctrl / ⌘ + Enter to run
Result

A clear result starts here

Run the tool to see your output here.

Try the example to explore how it works.
What to know about this tool

10 MB, 50,000 rows and 200 columns per input; complete report capped conservatively at 20 MB and 50,000 field differences. Unique nonblank headers/keys, matching column names and rectangular CSV required. Values stay strings; no fuzzy matching, XLSX or formula evaluation.

Clear this workspace?

Your inputs, selected files, and current result will be cleared.

Get a result you can use

Instructions and examples

From input to output

  1. Choose the first and second CSV exports, or paste each.
  2. Enter the shared Unique key column and review formula protection. Leave the key blank only if the first column is the intended ID.
  3. Select Compare CSV files and inspect added, removed, changed and unchanged counts, then download the difference CSV.

Settings and result behavior

  • Both files need the same exact column names, but column order may differ. Keys must be unique and nonblank in each file.
  • Values compare as exact strings; spaces and case matter. There is no fuzzy identity matching or formula evaluation.
  • Formula protection defaults on and alters potentially executable export cells with an apostrophe.

A worked example

Input
First: id,name
001,Ada
002,Lin

Second: id,name
001,Ada
002,Lin updated
003,Sam
Settings
Unique key column: id; formula protection on.
Expected result
1 added, 0 removed, 1 changed and 1 unchanged record. ID 002 shows the name field change.

Supported input and limits

Choose a UTF-8 CSV, TSV or TXT file, or open “Paste CSV instead”. Use comma, semicolon, tab or pipe separators. A header row with unique nonblank names and the same field count on every row is required. Each input has its own file/paste area and delimiter setting. Leave either delimiter blank to detect that source independently.

10 MB, 50,000 rows and 200 columns per input; complete report capped conservatively at 20 MB and 50,000 field differences. Unique nonblank headers/keys, matching column names and rectangular CSV required. Values stay strings; no fuzzy matching, XLSX or formula evaluation.

If the result is unexpected

  • For duplicate keys, choose an actually unique column rather than deleting records just to silence the error.
  • If a large report hits its output cap, compare smaller subsets while retaining the same key convention.

Check before using the result

Spot-check changed IDs against both sources. The table is a sample; download contains the complete accepted report, not a merged dataset.

Report a problem with this tool. Include a nonsensitive example and your browser details.

Questions about this tool

What makes a good CSV comparison key?

Use a stable, nonblank identifier that is unique in both files. Duplicate keys are rejected. Headers must have matching names, but records can appear in a different order. Values are compared as strings, without fuzzy matching.