How to Remove Duplicate Rows from a CSV

Remove duplicate rows from a CSV or spreadsheet, whole-row or matched on a key column like an email, keeping the first of each. No upload, no sign-up.

Updated 5 min read By CodingEagles
Free tool Remove Duplicate Rows Drop duplicate rows, whole-row or matched on key columns. Open tool

Duplicate rows creep in whenever data is combined from more than one place: a contact added twice, an order exported in two overlapping reports, a list merged without checking. Left in, they inflate counts and skew totals. Removing them by eye is unreliable once a file passes a few dozen rows.

The short version: add your file, decide what makes two rows a duplicate, and download the cleaned version. The duplicate-row remover works on your device, so nothing is uploaded.

What counts as a “duplicate” is the real question

The word duplicate sounds precise, but it depends on what you are comparing. Two rows can be identical in every cell, or they can represent the same person while differing in a note or a timestamp. You get to decide which definition applies.

Whole-row matching treats two rows as duplicates only when every cell matches. This is the strict option, good for catching rows that were copied verbatim.

Key-column matching treats two rows as duplicates when the columns you nominate match, ignoring the rest. Pick email, and two rows with the same email are duplicates even if one has a phone number and the other does not. This is usually what you want for contact lists and records with a natural ID.

Handling messy values

Real data is rarely clean enough for an exact match. [email protected] and [email protected] are the same address to a human but different strings to a computer, and a stray trailing space breaks the match too.

Two options fix this. Trimming ignores spaces around a value, and case-insensitive matching ignores capitalisation. With both on, near-identical entries collapse together; with both off, you get an exact comparison for when small differences actually matter.

How to remove duplicates

Step 1: Add your data

Paste CSV text or drop in a .csv or Excel file in the tool.

Step 2: Set what makes a duplicate

Leave it on whole-row matching, or click the columns that define a record to match on those instead. Switch trimming and case sensitivity on or off to suit your data.

Step 3: Download the clean file

The tool shows how many rows it removed and previews the result. Download a file with one copy of each row, in the original order.

If you are de-duplicating because you merged several files, it is worth checking the merge itself: the merge CSV tool aligns columns by name so rows combine cleanly in the first place. And when you need to see how two versions of a file differ rather than collapse repeats, the compare tool shows added, removed and changed rows side by side.

Frequently asked questions

Which copy of a duplicate is kept?
The first one. Rows are read top to bottom, and the first time a row or key appears it is kept while every later repeat is dropped. That keeps the original order of your remaining rows intact.
Can I match on one column instead of the whole row?
Yes. Choose the key columns that define a unique record, such as an email or an order ID, and two rows count as duplicates when those columns match even if other cells differ. With no key chosen, the whole row has to match.
What about different capitalisation or extra spaces?
Turn on case-insensitive matching and space trimming, and values like '[email protected]' and '[email protected] ' are treated as the same. Leave them off for an exact, character-for-character comparison.
Is my data uploaded?
No. The file is read and de-duplicated on your own device. Nothing is uploaded, nothing is stored, and the data never leaves your browser.

Ready to try it?

Drop duplicate rows, whole-row or matched on key columns. Free, in-browser, and 100% private — your data never leaves your device.

Open the Remove Duplicate Rows