Identify and remove duplicate rows from CSV files
Duplicates creep into datasets through repeated imports, merge errors, and manual entry. This tool finds them fast. Choose which columns define a "duplicate," pick how strictly values are compared, preview the matches, then keep the first occurrence, last occurrence, or remove all copies.
Initializing in your browser…
Pretty-print, validate, and clean up CSV files
Compare two CSV files side-by-side, find added/removed/modified rows, key-based or positional matching, highlight differences, and download comparison report
View and edit CSV files in a spreadsheet-like interface
A mailing list was merged from several sources and the same address appears multiple times.
Input
list.csv · dedupe key: email (case-insensitive)
Output
14,902 → 12,610 rows · 2,292 duplicates removed (first occurrence kept)
Duplicates are detected on the column(s) you choose with case-insensitive matching, so "Dana@x.com" and "dana@x.com" collapse correctly. Keeping the first occurrence preserves the earliest record while the count tells you how dirty the source was.
Duplicates creep into datasets through repeated imports, merge errors, and manual entry. This tool finds them fast. Choose which columns define a "duplicate," pick how strictly values are compared, preview the matches, then keep the first occurrence, last occurrence, or remove all copies.
You control what counts as a duplicate by selecting one or more key columns. Two rows are considered duplicates only if they match on every selected column, so you can deduplicate by email alone, by a combination of first name + last name + zip code, or by every column at once. You also choose a match mode: exact, case-insensitive, trimmed and normalized (lowercased with collapsed whitespace), or fuzzy. Fuzzy mode compares values with Levenshtein-distance similarity and an adjustable threshold (50-100%), so near-identical entries like "Jon Smith" and "John Smith" can be grouped. The tool shows each group of duplicates so you can verify, and even override individual rows, before removing anything.
Remove duplicate contacts before a mail merge or CRM import.
Eliminate overlapping records after combining CSVs from multiple sources.
Identify how many duplicate records exist in a dataset and where they cluster.
Yes. Select a single column like email or ID and the tool treats rows as duplicates whenever that column value repeats.
You pick the match mode. Exact compares values literally, case-insensitive treats "John" and "john" as the same, trimmed/normalized also ignores surrounding and repeated whitespace, and fuzzy uses Levenshtein similarity with a threshold you set to catch near-identical values.
Before removing anything, the tool shows each group of duplicate rows so you can review them, and it reports how many rows will be removed. The download is the cleaned file with duplicates removed according to your keep-first, keep-last, or remove-all choice.
Rows and columns are parsed and transformed in memory in your browser. No record ever reaches a server.