Skip to content

CSV Merge & Dedupe

Paste two CSV tables or open the files, pick the key column of each, and get one merged table without duplicates. Everything stays in your browser.

Your data is read and merged by your browser. Nothing is uploaded, saved or sent anywhere.

Comma · 3 columns · 3 data rows

Comma · 3 columns · 3 data rows

Key columns (rows with the same key are duplicates)
Column mapping: which column of Table B feeds each column of Table A

Email← email (key)

Keep
Rows in A
3
Rows in B
3
Duplicates removed
2
Merged rows
4

Conflicts (1)

Conflicts between duplicate rows
KeyColumnValues foundKept
ann@example.comNameAnn Lee | Ann LeighAnn Lee

Merged table

Merged table preview
EmailNameCityphone
ann@example.comAnn LeeParis555-0102
bob@example.comBob Ray555-0101
cy@example.comCy MoonRome
dee@example.comDee Park555-0103

How it works

  1. Paste CSV into Table A and Table B, or press “Open file” to read a file from your device. The delimiter is detected for you.
  2. Choose the key column of each table (an email, an ID, a SKU) and check how the other columns line up.
  3. Pick which copy to keep for duplicate keys, and whether to ignore case or fill empty cells from the removed copy.
  4. Review the conflicts, then copy or download the merged CSV.

What people use it for

  • Mailing and contact lists

    Combine a newsletter export with a customer list and keep each email address only once.

  • Product and inventory sheets

    Merge two supplier catalogs by SKU and see where the prices or names disagree.

  • Survey and event sign-ups

    Join registrations from two forms without counting the same person twice.

Questions

How are duplicates found?
Rows are compared on the key column only. With “Ignore case” and “Trim spaces” on, “Ann@Mail.com ” and “ann@mail.com” count as the same key. Rows with an empty key are never removed. By default the first copy is kept; choose “Last” to keep the most recent one.
What is a conflict?
When duplicate rows have different non-empty values in the same column, that is listed as a conflict, with the value that was kept. “Fill empty cells” is on by default: an empty cell in the kept row is completed with the value from a removed copy, so no data is lost; non-empty cells are never overwritten. Turn it off to keep the kept row exactly as it was.
Which CSV files are supported, and is there a size limit?
Commas, semicolons and tabs are detected automatically, quoted cells (including doubled quotes and line breaks inside a cell) and a UTF-8 byte order mark are handled. Each table is limited to 5,000 data rows and files to 5 MB, and a message tells you when the limit is hit. Nothing is uploaded: the files are read by your browser.