Free guide

Duplicate rows: before and after

Five real examples of the same entry showing up twice when two files are combined into one — plus the four habits behind every one of them. No signup required; use it on your own files if you'd rather do it yourself.

Two landing page signup exports

Before (duplicate missed)

Two signup exports from two different landing pages, each with its own copy of the same customer — one as "jane.doe@gmail.com", the other as "Jane.Doe@gmail.com " with a trailing space — so a plain text match sees two different people.

After (merged into one row)

One customer list with the email addresses trimmed and lowercased before comparing, so the matching pair is caught and merged into a single row.

Why it works: Two entries that look different at a glance can be the same person once spacing and capitalisation are normalised. Comparing the raw text, rather than a cleaned-up version of it, is how real duplicates get missed.

Expense reports from two team members

Before (duplicate missed)

Two expense spreadsheets from two colleagues on the same trip, both listing the same taxi receipt — one with the date written 03/04/2026, the other 2026-04-03 — so the overlap is not obvious at a glance.

After (merged into one row)

One combined expense sheet with every date in the same format, the matching taxi entry kept once, and a note showing which two source rows it came from.

Why it works: Two people submitting expenses for the same trip is exactly when duplicates happen. Standardising the date format first is what makes the matching entry visible instead of hidden behind two different-looking dates.

Event registration plus paper check-in list

Before (duplicate missed)

An online registration list and a paper check-in sheet for the same event, with one attendee appearing on both as "Kristoffer Lund" and, on the scanned sheet, "KRISTOFFER LUND" with an extra space.

After (merged into one row)

One attendee list with names in one consistent format, the duplicate collapsed into a single row, and a Registered + Checked-in column so no information from either source is lost.

Why it works: Merging two guest lists without matching the attendees first produces a sheet that double-counts the room. Keeping both sources' information on the single merged row is what makes the duplicate safe to remove.

Orders from a marketplace export and an internal order list

Before (duplicate missed)

A marketplace export and an internal spreadsheet both listing the same order, once as order ID "ORD-10452" and once as "ord10452" with no dash, so neither a text match nor a quick glance catches that they are the same order.

After (merged into one row)

One order list with order IDs stripped of punctuation and capitalisation before comparing, the matching pair merged, and the marketplace's own order number kept visible for reference.

Why it works: An ID formatted two different ways by two different systems is still one order. Stripping the formatting down to what actually identifies the order, before comparing, is what catches a duplicate that text-matching would miss.

Contact lists kept by two people

Before (duplicate missed)

Two separate contact spreadsheets, kept by two colleagues, with the same contact listed under a UK-format phone number in one and the same number written with a leading "+44" in the other.

After (merged into one row)

One contact list with every phone number in the same format, the duplicate merged into a single row, and whichever row had the more complete details — a job title in one, nothing in the other — kept rather than discarded.

Why it works: Two phone number formats for the same person is a common, easy-to-miss duplicate. Merging toward the most complete row, instead of just keeping whichever one came first, is what keeps the result from losing information either copy already had.

The four habits behind every merge above

Decide what makes two rows the same before you decide what's duplicate

An email, an order ID or a phone number is usually the real match key — not the whole row. Deciding that first avoids both missed duplicates and rows wrongly merged because unrelated fields happened to differ.

Normalise before you compare

Trimming spaces, matching case and standardising formats before comparing is what surfaces a duplicate that looks different on the surface but is really the same entry.

Merge toward the most complete row, not just the first one seen

When two duplicate rows each hold information the other is missing, the merged row should keep both — not whichever version happened to appear first in the file.

Leave a trace of what was merged

A note of which source rows were combined into one means nothing is silently discarded, and the merge can always be checked against where it came from.

Would rather not hunt for duplicates yourself?

Send SheetShift your files — even several at once — and you'll get back one clean, checked spreadsheet with duplicates already merged, ready within 48 hours.

Get your sheet