FREE LOCAL DATA TOOL

Remove CSV Duplicates by Selected Columns and Keep the First Row

Remove repeated records using an explicit single-column or composite key. Keep the first matching row in source order and retain a separate download of the removed rows so you can review the decision.

No account · Files stay in your browser · Working example included
Preparing the local controls…
Remove duplicates
Synthetic order data
5 rows · 4 columns
Match duplicates using

The first matching record is kept. Matching options do not rewrite cell values. Blank keys can match other blank keys.

Original file is never overwritten.
Adjust the options, then run the tool to preview your result.

Complete the task

  1. Read a headered CSV or TSV with the correct delimiter. All columns are selected initially, so the first run matches complete rows.
  2. Select only the columns that define a duplicate. Keep exact matching, or deliberately enable edge-space or letter-case matching. If you need the newest record, sort and review the source first using the related guide.
  3. Remove duplicates, compare the kept and removed totals, and inspect the retained table. Download the main result and the separate Removed rows report before replacing any source data.

Worked example

The built-in example contains 5 order records, including two identical 00101 rows. With all columns selected and matching options off, 4 rows remain and 1 row is available in Removed rows. Selecting only order_id gives the same result for this example. In a real file, selecting only that key would also remove later versions whose customer or amount differs; selecting all columns would retain those distinct versions.

Method and limits

First means first in the current input order, not newest or most accurate. The tool does not sort by date or combine fields from conflicting rows. Blank keys can match other blank keys. Matching normalization changes comparisons but does not rewrite retained cell values. Work on an exception copy if missing IDs must remain separate. Inputs require consistent row widths and are limited to 5 MiB, 20,000 data records, 200 columns and 250,000 cells including headers. Downloaded CSV values may receive an apostrophe under the default formula-like-value protection, including negative numbers; review the export option when exact strings are needed.

Only settings explicitly saved by you may persist. Input and results remain in page memory. Local file handling and privacy.