textdiff

textdiff / Compare lists

Compare two lists: find what's missing from each

Paste two lists (emails, SKUs, names, IDs, a spreadsheet column) and see what's only in the first, only in the second, and in both.

When to use a list compare instead of a diff

A text diff cares about order: it tells you line 4 moved to line 9. When you're comparing a newsletter list against unsubscribes, stock counts against an order sheet, or last month's customer IDs against this month's, order doesn't matter. You want set arithmetic, and that's what this tool does:

  • Only in A (A minus B): e.g. customers who didn't come back.
  • Only in B (B minus A): e.g. new sign-ups.
  • In both (the intersection): e.g. returning customers.

Cleaning up before you compare

Most "why doesn't this match?" problems are invisible characters. Spreadsheets add trailing spaces and non-breaking spaces; email addresses arrive with capital letters. Trim spaces collapses all whitespace runs, including non-breaking spaces, and Ignore case matches Farah@ with farah@. Results always show the item as it was written in your list.

Questions

How do I compare two lists to find what is missing?

Paste one list per box, one item per line (or choose comma/semicolon/tab separated). The results show items only in list A, items only in list B, and items in both. Copy any column with one click.

Can I compare two columns from Excel or Google Sheets?

Yes. Copy a column in your spreadsheet and paste it into a box: each cell arrives as its own line. Do the same with the second column.

Does it handle duplicates?

Duplicates within a list are counted and listed separately, so you can clean them up. The comparison itself treats each list as a set of unique items.

Why are two items that look the same not matching?

Usually an invisible difference: a trailing space, a non-breaking space, different capitalisation or a curly vs straight apostrophe. "Trim spaces" and "Ignore case" fix the first ones; the string compare tool shows the exact hidden character.

Is there a size limit?

Lists of up to about 200,000 items compare in a fraction of a second, because matching uses a hash set rather than comparing every pair. Everything runs in your browser.