Remove duplicates from a list without uploading it
Mailing lists, contact exports, sign-up sheets and stock lists collect duplicates: the same customer typed twice, once as "Jamie Lee" and once as "jamie lee ", the same email address from two different forms, the same phone number with and without the country code spaces. Excel has a Remove Duplicates button, but it only catches exact matches, it does not show you what it removed, and it changes your sheet in place.
This tool reads your spreadsheet in the browser, finds rows that match on the columns you choose, and gives you three views: the cleaned list, the rows it took out (and which row each one duplicated), and the whole original list with the duplicates marked. Nothing is uploaded, and your original file is not touched.
How to use it
- Add your data. Choose an Excel or CSV file, or paste cells straight from Excel or Google Sheets. A plain list with one item per line works too.
- Choose what makes a duplicate. All columns are ticked at first, so only identical rows count. Untick columns that may differ: tick only Email to catch the same person with a different spelling of their name.
- Choose how strict to be. Ignoring capital letters and extra spaces catches most typing differences. Tick Ignore spaces and punctuation for phone numbers and IDs, so that
+65 9123-4567and+6591234567match. - Keep the first or the last copy. Keep the last copy when newer rows are further down and hold the most recent details.
- Check and download. Look at Removed duplicates to see exactly what goes, then download Excel or CSV, or copy the cleaned list and paste it into your sheet.
Why duplicates slip through
Most duplicates are not exact copies. A name is typed with a capital letter one time and without it the next, a cell has a space at the end that you cannot see, a phone number is written with a dash on one form and without it on another. Excel treats all of those as different, so its Remove Duplicates button leaves them in. Choosing which columns matter, and how strict the comparison should be, is what catches them.
When it comes in handy
- Before a mail merge or newsletter, so nobody gets the same email twice.
- Merging sign-up lists from two events or two forms into one clean list.
- Cleaning a CRM export before importing it into a new system.
- Checking a stock or asset list for the same code entered twice.
Good to know
- Only the first sheet is used unless you pick another one from the Sheet list.
- Values are compared as text, so codes with leading zeros like
007stay as they are, and007does not match7. - Cleaned files keep your values but not formatting such as colours, column widths or formulas. The download contains the values the formulas showed.
- Empty rows are rows where every cell is blank. A row with one filled cell is kept.
How this tool was tested
Before publishing, I ran 41 automated checks on the finished page in a Chromium-based browser. Last full run: 14 November 2026.
- Matching: the duplicate finder was compared with a separate, deliberately simple version that checks every row against every other row. On 400 random lists with random settings (columns, capital letters, spaces, punctuation, empty rows, first or last copy) the two agreed every time.
- Reading data: text pasted from Excel, CSV files with quotes, commas and line breaks inside cells, semicolon CSV from European Excel, byte-order marks and Windows line endings, plain lists, and an Excel workbook with two sheets, a leading-zero code and a date.
- Speed: 20,000 rows with 5,000 duplicates were cleaned in well under a second.
- Downloads: CSV and Excel files were read back and their rows counted; the marked version keeps every row with its note; Copy for Excel puts tab-separated rows on the clipboard.
- Problems: a picture and a damaged Excel file each get a clear message.
What the tests did not cover: the Excel test files were written by the same SheetJS library the tool uses to read them, and I did not run the tests in Firefox or Safari. If a file does not read correctly, please tell me on the contact page.
FAQ
Is my spreadsheet uploaded?
No. The file is read and cleaned in this page. You can load it, turn off your internet connection and keep using it.
How is this different from Excel's Remove Duplicates?
It can ignore capital letters, extra spaces and punctuation, it can keep the last copy instead of the first, and it shows you every row it removed and which row it matched, so you can check before you trust it.
How big a file can it handle?
Tens of thousands of rows take a second or two on a normal laptop. The table on screen shows the first rows; the downloads always contain everything.
Can it find near-duplicates, like "Jon" and "John"?
No. It finds rows that are the same once spaces, capital letters and, if you choose, punctuation are ignored. Spelling differences need a human eye.