Compare Two CSV Files Online Free

Paste or drop two CSVs, pick a column, and get set math buckets, keyed row diffs and a masked preview. Leading zeros stay safe and nothing uploads.

✓ Column set math ✓ Keyed row diff ✓ Normalization rules ✓ No uploads

CSV file A

Waiting for CSV A

CSV file B

Waiting for CSV B

Compare settings

Column values mode compares the distinct values of the selected column. Row mode joins whole rows on the selected key column.

Only in A 0

    Only in B 0

      In both 0

        Comparison report

          Everything runs on your device.
          • The parser runs in this tab and moves to a Web Worker for large files.
          • Normalization, set math and the row join never call a server.
          • Masked previews hide PII on screen; exports keep your real values.
          • Nothing is stored, logged or emailed. Close the tab and the data is gone.

          How to Compare Two CSV Files Without Losing Rows

          Most people line the files up in a spreadsheet and eyeball the difference, which breaks on the first blank cell. This pipeline is deterministic:

          1. Load both sides - Paste or drop file A and file B. Delimiters, quotes and embedded newlines are detected per file, including semicolon exports from European spreadsheets.
          2. Pick the column - Column values mode compares the distinct values of that column as sets. Row mode joins whole rows on it as a key. The same column is preselected on both sides.
          3. Turn on the rules you need - Trim, ignore case, collapse spaces, reduce phone numbers to digits, strip utm parameters, or strip leading zeros. The default keeps 007 different from 7.
          4. Read the buckets and export - Only in A, only in B, in both, and same key with different cells each get a count, a preview and a CSV download, plus a combined export and a JSON export.

          Column Set Math vs Keyed Row Diff

          Two comparison styles cover nearly every CSV audit you will run:

          • Set math - Values of one column from each file become sets. You see missing values, extra values and overlaps without caring where the rows sit. This is what finds missing IDs, unmatched emails or new SKUs in an export.
          • Keyed row diff - Rows join on the key column, then matched pairs are compared cell by cell. Differing rows list the exact columns that changed, so you know whether the price moved or only the timestamp.
          • Normalization - Each rule is applied before comparison, so the same rule runs on keys and values in every bucket. The report states which rules fired for auditability.
          • Leading zeros - Values are strings end to end. ZIP codes, account numbers and invoice IDs never get coerced to numbers, and stripping zeros only happens when you ask for it.
          • Masked preview - Emails, phones, SSNs and card style runs are covered in the on screen lists while the raw CSV exports stay intact for your actual workflow.

          Compare CSV Files Without Uploading Them

          Export lists carry customer emails, order totals and internal SKUs, which makes them the wrong files to paste into a random converter. This page parses both CSVs in the browser, keeps every bucket in memory, and downloads exports straight from the tab. After reconciling files, check site health with the Free SEO Audit Tool or book our SEO audit services. For more data work, open the CSV Viewer or the JSON to CSV Converter.

          Frequently Asked Questions

          How do I compare two CSV files here?

          Paste each CSV into its own box or drop a file on it, press Load, pick the column to compare, then press Compare. The output splits into only in A, only in B and in both, and every bucket exports as a CSV file.

          What is column set math?

          Instead of lining up rows, the tool takes the distinct values of a chosen column from each file and runs set operations on them: values that exist only in file A, values only in file B, and values present in both. The comparison is string based, so a leading zero is never silently dropped.

          Which normalization rules can I apply?

          Trim whitespace at the edges, ignore letter case, collapse repeated spaces, reduce phone numbers to bare digits, strip utm parameters from URLs, and strip leading zeros. Every rule is a checkbox, and the report lists exactly which ones were active during the run.

          Can it compare whole rows too?

          Yes. Switch to row mode, choose the key column (for example id, email or SKU), and rows are joined on the normalized key. You get rows only in A, rows only in B, rows that match, and rows that share a key but differ in other cells, with the differing columns listed.

          What does the PII masked preview do?

          It hides email addresses, phone numbers, Social Security numbers and card style digit runs inside the on screen previews so a shared screenshot stays clean. The downloaded CSV files keep the original values, because the export is the data you are comparing.

          How large can my files be?

          Files over about half a megabyte are parsed in a Web Worker so the page never freezes, and smaller ones parse instantly in the tab. There is no row limit and no email gate. Everything stays on the device.

          Are my files uploaded?

          No. Parsing, normalization, set math and export all run in this tab with local JavaScript. Neither CSV, the comparison buckets nor the report ever leave your device.