CSV Dedupe & Merge

Find and merge duplicate rows in a .csv, .tsv or Excel file. Match on any columns - exact or fuzzy - decide which value wins for each field, and download clean data. Your file is parsed in your browser and never uploaded.

How it works

Point it at an exported list - a CRM contact dump, a mailing list, an asset inventory, two spreadsheets you concatenated - and it collapses duplicate records into one clean row. You choose which column(s) define a duplicate (email, say, or name + company), whether matching is exact or fuzzy (so John Smith, john smith and Jon Smith collapse together), and, field by field, which value survives the merge: the first non-blank, the longest, the most common, or the value from a specific row. Winning values are highlighted so you can see exactly what will be kept before you export. The whole thing runs in your browser using a local copy of SheetJS to read the file: nothing is uploaded, so it is safe for customer lists and other confidential data.

Frequently asked questions

What counts as a duplicate?

Whatever you decide. Pick one or more columns to match on. In exact mode two rows are duplicates when those columns are identical (after the normalisation you enable, ignore case, whitespace, punctuation). In fuzzy mode they are duplicates when the columns are similar above the threshold you set, which catches typos, spacing and formatting differences.

How does the merge decide which value to keep?

Per field. Set a default rule (keep the first non-blank value, the longest, the most common, or the value from the first/last row) and override it for any individual column. A group of duplicates becomes one row that takes the best value from each, e.g. the phone number from whichever record actually had one.

Is my file uploaded anywhere?

No. The file is read and processed entirely in your browser with a bundled copy of SheetJS. Nothing is sent to a server: safe for contact lists, customer data and other sensitive exports.

What formats and sizes work?

.csv, tab-separated .tsv, and Excel .xlsx/.xls. Multi-sheet workbooks let you choose the sheet. Fuzzy matching compares every pair for files up to ~1,500 rows and switches to a fast sorted-neighbourhood method above that; exact matching handles very large files easily.

Related tools