How to Match Two Spreadsheets by Name When You Don't Have a Shared Email
Quick answer
When two spreadsheets don't share a common identifier like email or ID, match on contact name and company name together using fuzzy matching. Name-only matching is unreliable because the same person appears as "Jennifer Walsh" in one file and "Jen Walsh" in another. Combining name and company into a single match signal is significantly more reliable — and fuzzy matching catches the variants that exact-match formulas miss entirely.
Email is the easiest way to match records across two spreadsheets. It's a unique identifier, it's usually consistent, and VLOOKUP on email works reliably when both files have the same address for the same person.
But a lot of real-world matching problems don't have email. Trade show badge scans often don't include email. Manual contact lists built from business cards don't have email. Old spreadsheets from before email was collected systematically don't have email. And when two systems were built independently, the same person often has a different email in each — personal in one, work in the other.
When email isn't available or isn't consistent, name matching is the fallback. And name matching is harder than it looks.
Why Name Matching Is Harder Than Email Matching
Email addresses are designed to be unique and consistent. Names are not. The same person appears as:
- "Jennifer Walsh" on a formal contact list
- "Jen Walsh" on a trade show badge
- "J. Walsh" in a scraped LinkedIn export
- "Walsh, Jennifer" in a legacy CRM export with last-name-first formatting
- "jennifer walsh" in a manually entered spreadsheet with inconsistent capitalization
Exact-match VLOOKUP treats all five of these as different people. If you're matching a trade show export against a CRM where the same person is stored under different name formats, the match fails silently — you get #N/A, move on, and import a duplicate.
This is why name-only matching requires a different approach than email matching.
Why Name Alone Isn't Enough
Even with fuzzy matching, matching on name alone creates two problems:
False negatives: "Jon Smith" doesn't match "John Smith" closely enough at a strict threshold. You miss real matches.
False positives: Two different people named "David Park" at the same company score as a match when they're not. Or two "Jennifer Walsh" contacts at different companies in your CRM both get flagged as matching one person in your import file.
The solution to both problems is the same: match on name and company together. The combined signal is dramatically more reliable than either field alone.
"Jen Walsh at Acme Corp" matching against "Jennifer Walsh at Acme Corporation" scores highly on the combination — the name variant is caught, and the company confirms it's the same person at the same organization. Two different "David Park" contacts at different companies score low on the combination because the company fields don't match.
Step 1: Prepare Both Files
Before matching, normalize the data in both files to reduce sources of variation that have nothing to do with whether records are the same person.
Split full names into first and last if they're combined. "Jennifer Walsh" in one column is harder to match than separate first and last name columns. Most tools handle combined name fields, but separated fields give you more control.
Check for last-name-first formatting. Legacy CRM exports sometimes store names as "Walsh, Jennifer." If one file uses this format and the other uses "Jennifer Walsh," normalize before matching — a simple find-and-replace or text formula can reorder these.
Normalize company names. Strip "Inc.", "LLC", "Corp.", "Ltd." and convert everything to lowercase before matching. This converts many fuzzy matches into near-exact matches, reducing false positives.
Step 2: Match on Name and Company Together
Upload both files to Clean by Similarity API. Select contact name as one matching column and company name as another. The tool combines both signals into a single similarity score for each potential match.
This catches:
- Name variants ("Jen" vs "Jennifer", "Jon" vs "John")
- Company formatting differences ("Acme Corp" vs "Acme Corporation")
- Minor typos in either field
- Word order differences in names or company names
What it correctly doesn't match:
- Two different people with similar names at different companies
- Same name, completely different company
- Records that are genuinely different entities
Set your threshold. For name-and-company matching on contact data, 0.78–0.85 is a practical range. Start at 0.80 and adjust based on your results — lower if you're missing obvious matches, higher if you're seeing false positives.
Want to reconcile your datasets in under 2 minutes?
Upload your CSV and find duplicates in seconds — no signup, no install, 1,000 rows free.
Try it for free →Step 3: Review Borderline Matches
Name matching always produces a band of uncertain cases — similarity scores in the 0.65–0.80 range where the match is plausible but not definitive. These are worth a manual review pass before taking action.
For each borderline match, ask:
- Does the company name support the match? If name similarity is moderate but company is identical, it's probably a match.
- Is the job title consistent? Different titles at the same company could mean two different people, or a title change for the same person.
- Is any other field available to confirm? Phone number, LinkedIn URL, city — any shared field can tip a borderline match into a confident one.
High-confidence matches (>0.85) can usually be actioned automatically. Borderline matches take a few minutes to review manually but prevent the most problematic errors.
When Name Matching Is Your Only Option
Trade show exports without email. Badge scanners capture name, company, and title but frequently no email. Matching these against your CRM requires name-and-company matching — there's no other path.
Business card lists. Manually entered contact data from cards often has no email, or has a generic company email rather than an individual address.
Legacy data migrations. Older systems sometimes stored contacts without email, or with emails that are no longer valid. Name matching is the only way to find corresponding records in a newer system.
Vendor data with different emails. When a data vendor surfaces a work email for someone your CRM has stored with a personal email, email matching fails. Name-and-company matching bridges the gap.
Post-acquisition data merges. Two companies merging their CRM databases may not have email overlap for many contacts — particularly if the acquired company used different email conventions or collected contacts from different channels.
Key Takeaways
- Email matching is reliable but only works when both files have the same email for the same person — which is frequently not the case
- Name-only matching produces both false negatives (missing real matches due to name variants) and false positives (matching different people with similar names)
- Combining name and company into a single match signal solves both problems — it catches variants while rejecting genuinely different records
- Fuzzy matching is essential for name-based comparison — VLOOKUP on names fails silently on any variant spelling or formatting difference
- Borderline matches (medium similarity scores) are worth a manual review pass — they're where the most valuable catches and the most dangerous errors both live