← Blog
By Rob Stephan

How to Clean Up a Messy Email List (Without a Spreadsheet)

Two exports, different capitalisation, duplicates across both, and no idea who is new. Four steps, all in the browser, nothing uploaded.


Two exports from two systems, a few hundred addresses each, some overlap, and inconsistent capitalisation. The spreadsheet approach involves VLOOKUP, a helper column and a certain amount of swearing. Here is the same job in four steps, entirely in your browser.

Before you start: nothing is uploaded

Every tool below runs locally. Your list never leaves your device, which matters when the list is your customers and you have not checked whether pasting it into a random website counts as a transfer under your own privacy policy.

Step 1: remove the duplicates

Paste the list into remove duplicate lines.

Leave Match case off. The local part of an email address is technically case-sensitive, but no mail provider in practice treats it that way — so Alice@example.com and alice@example.com are one person, one subscriber and one unsubscribe. Treating them as two is the single most common reason a "de-duplicated" list still sends twice.

The tool keeps the first of each and reports what was repeated and how many times. Read that report. If one address appears four times, something upstream is duplicating rows, and fixing that is worth more than cleaning this export.

Step 2: find out what changed

Paste last month's export into the first box of list comparison and this month's into the second:

  • Only in the first — everyone who left
  • Only in the second — everyone who joined
  • In both — the list that stayed

Order does not matter, because two lists are compared as sets rather than as a diff. Two exports of the same list sorted differently are identical here.

Each of the three results has its own copy, download and share, so the churn list can go straight to whoever asks for it.

Step 3: sort it

Send the result to the list sorter. Alphabetical order makes a list easy to scan and easy to diff next month. If your list has numbers in it — invoice references, member IDs — leave it on Natural order so id9 comes before id10 rather than after id1.

Step 4: trim the mess

If the list came out of a spreadsheet column or a PDF, run it through the text cleaner to strip trailing spaces and non-breaking spaces. Those are invisible, and they are why two addresses that look identical refuse to match.

Do this before de-duplicating if the export looks suspicious — a trailing space is enough to make one address look like two.

Doing it without the copy and paste

Each tool can hand its result to the next one: use Send to and the text arrives in the next tool with nothing on your clipboard. Clean, de-duplicate, compare, sort, then share the result as a link or download it as a text file.

Related tools

Written by

Rob Stephan

A dad, husband and a software engineer, I love building solutions to make life easier.