Skip to content

CSV Deduplicator

Find and remove duplicate rows in a CSV, comparing whole rows or only the columns you choose.

Processed locally in your browser

Options

Header names or 1-based numbers, separated by commas. Ranges work too: 1,3-4,email. Use "quotes" around names containing commas.

0 chars · 0 lines
The result will appear here.

What is CSV Deduplicator?

Merged exports and repeated imports create duplicate records. This tool compares rows and keeps a single copy of each. By default a row is a duplicate only when every column matches; list one or more columns, such as email, to treat rows as duplicates whenever those columns match.

You choose whether the first or the last occurrence survives, and whether comparison ignores letter case. Surviving rows keep their original order. The result reports how many rows were before, how many duplicates were removed and how many remain.

How does it work?

  1. Paste the CSV or open a file.
  2. Leave "Compare columns" empty to compare whole rows, or list columns such as email or 1,3.
  3. Choose to keep the first or last occurrence and tick ignore case if needed.
  4. Read the statistics, then copy or download the deduplicated CSV.

Common use cases

  • Cleaning a mailing list so each email appears once.
  • Removing rows repeated after merging several exports.
  • Keeping only the latest record for each customer ID.
  • Checking how many duplicate rows an import contains.

Examples

Try this input in the tool above:

Input
id,email,plan
1,alice@example.com,free
2,bob@example.com,pro
3,ALICE@example.com,pro
4,bob@example.com,free
Output
id,email,plan
1,alice@example.com,free
2,bob@example.com,pro

Privacy

CSV Deduplicator runs entirely in your browser. The text or files you provide are processed on your device and are not uploaded, logged or stored on our servers.

Limitations

Only exact matches are detected (optionally ignoring case). Near-duplicates such as "Jon" and "John" or different spacing are treated as different values.

Frequently asked questions

What does keeping the last occurrence do?

When several rows share the same key, the final one in the file is kept and earlier ones are dropped. Useful when newer rows update older data.

Are the rows reordered?

No. The surviving rows stay in their original relative order.

Is the header row ever removed?

No. With "First row is a header" enabled, the header is excluded from comparison and always kept.

More tools in JSON & Data →