Duplicate Row Finder for CSV Files
Find rows that are the same record written slightly differently, like "ACME Inc." and "acme inc", and keep only the first one. You choose which columns decide a match. You get a cleaned file plus a separate file of every removed row and the row it duplicated, so you can check the result. Your file never leaves your browser.
Rows match when these columns match:
Kept rows
Duplicates removed
"Row" and "Kept row" are row numbers in your original file, counting the header as row 1 like a spreadsheet.
How it works and privacy
Each row gets a comparison key built from the columns you tick, adjusted by the options you choose; the first row with each key is kept and later ones are set aside with a note of which row they matched. The page is plain HTML and JavaScript that runs on your device: your data is read and processed in this browser tab and is never uploaded, stored on a server or shared. There are no tracking cookies. The only network request this page can make is the optional Pro license check, which sends just your license key to Gumroad.
How to use
- Open your CSV file.
- Tick the columns that identify a duplicate, for example just Email, or Name and Company.
- Choose how loose the match should be (case, spaces, punctuation).
- Press Find duplicates, then download the cleaned file and, if you want to check, the duplicates file.
Free and Pro
Free: first 200 rows of each output file. Pro: unlimited rows.
Questions
How do I remove duplicates based on one column only?
Untick every column except the one that should be unique, such as Email, then press Find duplicates. Rows with the same value in that column are treated as duplicates even if other columns differ.
Which row is kept when duplicates are found?
The first one in the file. Every later match is moved to the "duplicates removed" file, with a Kept row column telling you which row it matched.
Does it catch near-duplicates like "ACME Inc." and "acme inc"?
Yes, with "Ignore upper and lower case" and "Ignore all spaces and punctuation" ticked. It does not do fuzzy spelling matches, so "Acme" and "Acmee" are still treated as different.
What happens to rows where the chosen columns are blank?
They are always kept. Blank is not treated as a value, so ten rows with no email are not collapsed into one.
Is my file uploaded?
No. The file is read and processed by your browser. Nothing is sent to a server.
More free tools
- CSV Scrub
Fix dates, phones, spacing and duplicate rows in a messy CSV. - JSON to CSV Converter
Turn JSON into a spreadsheet, or a CSV into JSON. Nested fields get flattened. - Email List Cleaner
Lowercase, dedupe, fix gmial.com-style typos and flag invalid or role addresses. - CSV Splitter and Merger
Split a big CSV into smaller files, or merge several CSVs into one with matched headers. - Name and Address Cleaner
Split full names, fix capitalization, standardize US states and ZIP codes. - HTML Table to CSV
Paste a web page table or its HTML and download it as a clean CSV. - All Scrub Tools, templates and guides