Find Duplicates in a CSV
See your duplicates before you delete them. Pick which columns define "the same record" — the whole row, or just email, or invoice + date — and get every duplicated row back, grouped and numbered, with the line it came from in the original file. When you already know you want them gone, Dedupe does the removing.
How to find duplicate rows
- Paste the CSV or drop a file. Every column starts ticked, which finds fully identical rows.
- Untick columns until only the ones that define identity remain —
emailalone, ororder_id + line_no. - Read the status line: how many duplicate keys there are, and how many of your rows they cover.
- Switch the output mode depending on what you need next — a report, a flagged copy of the full file, or a deduped version.
The four output modes
- Only duplicated rows, grouped — a report. Each row carries
dup_group,dup_count, andsource_rowso you can find it in the original file. - All rows + dup_group / dup_count — your whole file with duplicates annotated. Good for sorting or filtering in a spreadsheet afterwards.
- First of each group — a deduped file that keeps the earliest occurrence.
- Rows that appear exactly once — the opposite view: records with no twin anywhere. Useful for reconciliation, where a row appearing once means something failed to match.
Why duplicates hide
Two rows that look identical on screen often differ by a trailing space, a non-breaking space pasted from a web page, or casing ([email protected] versus [email protected]). Ticking ignore edge spaces and ignore case catches those without changing your data — the comparison is normalised, the output rows are untouched. If you want the file itself cleaned, run Trim whitespace first.
FAQ
What's the difference between this and Dedupe?
Dedupe removes duplicates and gives you the cleaned file. This tool shows you what would be removed, with row numbers — the step you want before deleting anything you can't recover.
Can I find duplicates on a single column but keep all the other columns?
Yes — tick only that column. Every output mode still carries all of your columns.
Do row numbers count the header?
source_row counts data rows, so row 1 is the first record after the header.
How do I count occurrences per value instead?
That's Value counts, which gives a frequency table for one column with percentages.
Privacy
100% client-side. No upload. See the privacy policy.