Remove duplicates from CSV files
Find and remove duplicate rows by the columns you choose, trim stray spaces, drop empty rows and download a clean file. Built for contact lists, CRM exports and product feeds.
Your file stays on your device
The CSV is read and cleaned inside your browser. No upload, no account, no tracking.
1 Load your data
Paste CSV text instead
No data loaded yet.
2 Choose how to match and clean
3 Review and download
How to remove duplicate rows from a CSV file
Duplicate records creep into every list: the same contact signs up twice, two exports get combined, or a product appears in several feeds. Importing those duplicates into a CRM, an email tool or a shop system creates double messages and confusing reports. This tool removes them before the import, without uploading your data anywhere.
Step by step
- Load the file. Choose or drop a CSV file, or paste the text. The delimiter (comma, semicolon, tab or pipe) is detected automatically; you can override it if the preview looks wrong.
- Select the match columns. Tick the columns that identify one record. For a mailing list, the email column alone is usually right. Leave all columns ticked to remove only rows that are identical everywhere.
- Decide how strict the comparison is. By default, extra spaces and upper or lower case are ignored, so "Ada@Example.com " and "ada@example.com" count as the same value. If you pick a phone column, only its digits are compared, so "(555) 010-2030" matches "555.010.2030".
- Choose which row to keep. Keep the first occurrence, or the last one if newer records were added at the end of the file.
- Run and review. The summary shows how many rows were read, removed and kept. Switch the preview to "Removed duplicates" to check what was taken out and which row each one matched.
- Download. Save the cleaned CSV, and optionally the removed rows as a second file for your records.
What counts as a duplicate?
There are three levels. An exact duplicate has the same characters in every compared column. A normalized duplicate is the same once you ignore formatting such as case, spaces or punctuation; this is what most people mean when they clean a contact list. A near duplicate differs slightly, for example because of a typo in a name. The free tool handles exact and normalized duplicates. Fuzzy matching for near duplicates is available in Pro, because it needs a careful review of the results.
Empty values need special care
If you deduplicate by email and several rows have no email at all, a simple comparison would treat all of those rows as duplicates of each other and delete them. The option "Never treat rows with empty match values as duplicates" is on by default to prevent exactly that. Completely empty rows are removed separately by the cleanup option.
Spreadsheet apps versus a dedicated cleaner
Excel has a Remove Duplicates command on the Data tab, and Google Sheets offers one under Data cleanup. They work well for small sheets. A dedicated cleaner helps when you want to normalize values before comparing, keep the last instead of the first occurrence, see exactly which rows were removed, or avoid opening a file with many rows in a spreadsheet at all. It also keeps the data out of cloud storage if you would rather not upload a customer list.
Good habits
- Keep an untouched copy of the original export.
- Check the removed rows before importing the cleaned file.
- Use the same rules every time you clean the same kind of export, so results stay consistent.
Frequently asked questions
Is my CSV file uploaded anywhere?
No. The file is read by your browser and processed on your device with JavaScript. Nothing is sent to a server, and the file contents are not stored after you close the page.
How large can the file be?
The free version processes up to 100,000 rows per run. In practice, speed depends on your device memory and the number of columns. Pro removes the fixed row limit.
Which columns should I use to find duplicates?
Choose the columns that identify a record. For contact lists that is usually the email address. For products it may be the SKU. If you select all columns, only rows that are identical in every column count as duplicates.
Which row is kept when duplicates are found?
You decide. "Keep first" keeps the row that appears first in the file, "Keep last" keeps the last one, which is useful when newer records are appended at the bottom. Removed rows can be downloaded as a separate file for review.
Why do accented characters look wrong when I open the result in Excel?
Excel sometimes does not recognize UTF-8 files. Leave "Add UTF-8 BOM for Excel" switched on; it adds an invisible marker at the start of the file so Excel shows characters such as é, ü or ñ correctly.