Delete duplicate rows from a CSV, comparing whole rows or selected columns.
About Remove Duplicates from CSV
Duplicate rows creep in every time lists are merged, exported twice or typed by hand: the same customer twice in a mailing list, an order imported on two days, a product repeated with an extra space. This tool finds and removes those duplicates from a CSV or Excel file. You decide what counts as a duplicate: the whole row, or only the columns you pick, such as email or order ID.
Matching can ignore upper and lower case and extra spaces, so "ANA@example.com " and "ana@example.com" are treated as the same value. You see how many rows were removed, a preview of the unique rows and of the duplicates, and you can download either list as CSV or Excel. The file is processed in your browser and never uploaded.
How to use Remove Duplicates from CSV step by step
Open a CSV, TSV, TXT or Excel file, or paste the data with "Paste text". The example loaded on the page shows how it works.
Leave "First row is the header" ticked if your data has column names, so the header row is never removed.
Click the columns that define a duplicate, for example only "email". With no column selected, two rows must be identical in every column.
Keep "Ignore upper/lower case" and "Ignore extra spaces" ticked for names and emails, and choose whether to keep the first or the last occurrence.
Check the summary and the previews, then click "Download CSV without duplicates" or "Download Excel". "Download the duplicates" saves the removed rows for review.
Compared by email, ignoring case and spaces:
email,name,city
ana@example.com,Ana López,Madrid
luis@example.com,Luis García,Sevilla
(2 duplicates removed)
Why use our Remove Duplicates from CSV?
100% free and online: no payments, no software or extensions to install.
Privacy-first: processing happens in your browser, your data never leaves your device.
No sign-up: paste your data and get the result in one click.
Fast and reliable: handle small or large files in seconds, ready for Excel and other tools.
Common use cases
Clean a mailing list before importing it into Mailchimp, Klaviyo or HubSpot so nobody receives the same email twice.
Remove orders or transactions that were exported twice before summing revenue.
Deduplicate a product catalogue by SKU before a bulk import into Shopify or WooCommerce.
Find repeated records in a CRM export by comparing only the email or phone column.
Keep the most recent version of each record by sorting by date and keeping the last occurrence.
Limits and tips
Compare by a key column (email, ID, SKU) rather than the whole row when the same record may differ in other fields, like a name written with and without accents.
"Keep the last occurrence" is useful when later rows are newer: the final version of each record survives, in its original position.
Download the duplicates as well and review them before deleting anything from your source system.
"Ignore extra spaces" trims the value and collapses repeated spaces inside it; it does not touch the values written to the output.
For files with millions of rows, open them first with the Large CSV Viewer and export or split them into parts the browser can handle comfortably.
Frequently asked questions
How do I remove duplicate rows from a CSV file?
Open the file in this tool and download the result: with no column selected, rows that are identical in every column are removed and the first occurrence is kept. Select specific columns if only those should be compared.
Can I remove duplicates based on one column only?
Yes. Click that column, for example email, in "Columns to compare". Rows with the same email are treated as duplicates even if the other columns differ, and only one of them is kept.
Is the comparison case-sensitive?
By default it is not: "Ana@Example.com" and "ana@example.com" count as the same value. Untick "Ignore upper/lower case" for case-sensitive data such as codes or password hashes.
Which row is kept when there are duplicates?
The first occurrence by default, so the file keeps its original order. Choose "Keep the last occurrence" to keep the latest row of each group instead.
Is my data uploaded?
No. The file is processed by JavaScript inside your browser and nothing is sent to a server, which makes the tool safe for customer lists and other personal data.