1. Home
  2. Free tools
  3. Email list tools
  4. Remove CSV duplicates by column

Remove CSV duplicates by column: keep one row per email, phone number or any column

In short: Upload a list, choose the column that must be unique, such as email or phone, and keep the first or last row of each repeat. Rows with a blank key are never treated as repeats. Limit: It finds exact repeats only; a typo makes a different value.

Upload a CSV or .xlsx file, or paste it with a header row. Choose the column that must be unique, such as Email or Phone, and optionally a second column that must repeat with it. Pick whether to keep the first or the last row of each repeat. You download the list without repeats and the rows removed, each noting which row it repeats.

Price: this tool is free. Checking a whole email list is from $9/mo, and the first 100 checks are free with Google, no card. Check your list free nowSee pricing

Runs in your browser. Nothing is uploaded.
Sample result from the Remove CSV duplicates by column
Show the sample result as

Sample result

Five example rows have 1 repeat removed: row 3 repeats row 1 once upper and lower case are ignored.

Rows kept
4 of 5
Key column
Email
Kept
First row

What this means for you

One row per address is not the same as a working mailbox; a check shows which addresses exist.

Next step:Verify the list
  • Any column as the key
  • Two columns together
  • First or last kept
  • Removed rows saved
  • Duplicates
  • CSV
  • Column

By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us

Removed the repeats? Check the addresses you kept before the send.

  1. Download the list, or use the check button under the result, which carries its addresses across.
  2. Upload or paste it at /verify. Every address gets a live mailbox check, and the first 100 email checks are free with a Google sign-in, no card.
Check the list

How do I remove duplicate rows from a CSV by one column?

  1. Upload the file as a CSV or .xlsx, or paste the cells with the header row first.
  2. Choose the column that must be unique, and a second column if the pair must repeat together.
  3. Choose whether to keep the first or the last row of each repeat.
  4. Download the list without repeats, and the rows removed if you want to see them.

Example

You enter
Five rows where AVA@example.com repeats ava@example.com, with Email as the key column and the first row kept.
You get
5 rows in, 4 kept and 1 repeat removed: row 3 (AVA@example.com) repeats row 1.
Limits
Runs in your browser; nothing is uploaded. It finds exact repeats only and drops a repeated row whole.

How is a repeat found?

Cells are trimmed and compared without regard to upper and lower case, so AVA@example.com repeats ava@example.com, unless you switch on exact case matching. With a second column chosen, both cells must repeat together, so the same email with two different campaigns is kept as two rows.

Rows where the chosen cells are all blank are never treated as repeats of each other; they are kept and counted so you can see how many there are.

Keep the first row or the last?

Keep the first when your list is ordered so that the best row comes first, such as the oldest or the most complete. Keep the last when later rows are newer, such as a re-export that updates earlier rows.

The rows removed are saved as a second file with the row each one repeats, so you can see what was dropped. If you would rather fill blanks from the repeat than drop it, use the duplicate email row merger.

What if the repeats are not exact?

It finds exact repeats only. Addresses that differ by a typo or a dot are different values here; for those, use the near duplicate email finder. For a plain list of addresses, remove duplicate emails does the same on one column. See also duplicate leads across several sources.

Who uses this tool, and for what?

Cold emailers
Keep one row per address after joining exports from two tools.
Marketers
Keep the newest row for each customer after a re-export.
Sales teams
Make sure each phone number is on a call list once.

What can’t this tool tell you?

  • It finds exact repeats only; a typo makes a different value.
  • When two rows repeat, one is dropped whole; it does not copy cells from one to the other.
  • Only the first sheet of a workbook is read.
  • It does not check whether an address exists.

Common questions

Which column should I choose?
The one that must be unique: Email for contacts, Phone for a call list, or an ID. Choose a second column only if the pair must repeat together.
Is the comparison case sensitive?
Not by default, so AVA@example.com repeats ava@example.com. There is a switch for exact case.
What happens to rows where the column is blank?
They are kept and counted, never treated as repeats of each other.
Can I see what was removed?
Yes. The removed rows are shown and saved as a second file with the row each one repeats.
Does the list need an email column?
No. Any column can be the key. If the list has a column of addresses, the check button carries the kept rows across.
Is my file uploaded?
No. The file is read in your browser and goes nowhere.

A tidy list can still be full of dead addresses.

Extracting, deduplicating and syntax checks all work on the text of an address. None of them can tell whether the mailbox exists. Only the server that hosts it can answer that, through an SMTP check, and that is what the paid product does.

  • Upload the cleaned file as it is: CSVs up to 100,000 rows
  • A real SMTP mailbox check on every row, with catch-all detection
  • Small list? Starter at $9/mo covers 2,500 emails a month, cancel anytime

Plans from $9 a month, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.

Clean your next list before it bounces

100 free email checks when you sign in with Google, no card. Then monthly plans from $9, or one flat price with fair use, never cut off.

100 free checks, no card Cancel anytime Secure payment by Stripe