How to Match and Merge Two Company Lists From Different Spreadsheets
You have two spreadsheets with company names. Maybe one is from your CRM and the other from a trade show. Maybe one is from sales and the other from marketing. Maybe one is from last year and the other is current.
You need to combine them. But first, you need to figure out which companies appear in both lists — so you don't create duplicates when you merge.
You try VLOOKUP. It finds almost nothing. The same company is spelled "Microsoft Corp" in one list and "Microsoft Corporation" in the other. VLOOKUP sees these as completely different.
Sound familiar? Here's how to actually solve this problem.
Why VLOOKUP Fails for Company Names
VLOOKUP does exact matching. Two strings are either identical, or they're not. There's no "close enough."
This works fine for matching order numbers, product SKUs, or employee IDs. Those are standardized. If the order number is "ORD-12345" it's "ORD-12345" everywhere.
Company names are different. They're entered by humans, often years apart, by people who never coordinated with each other. The same company appears in your data as:
| List A | List B | VLOOKUP Result |
|---|---|---|
| Acme Corp | ACME Corporation | No match |
| Johnson & Johnson | Johnson and Johnson, Inc. | No match |
| The Walt Disney Company | Disney | No match |
| PricewaterhouseCoopers | PwC | No match |
| General Electric Co. | GE | No match |
These are obviously the same companies. A human can see it instantly. But VLOOKUP returns #N/A for every single one.
You could try to standardize the names first — remove "Inc." and "Corp" and "LLC", convert to uppercase, strip punctuation. This helps a little, but it doesn't catch abbreviations like "GE" for "General Electric" or "PwC" for "PricewaterhouseCoopers."
You need a different approach entirely.
The Solution: Fuzzy Matching
Fuzzy matching compares two strings and gives you a similarity score instead of a yes/no answer.
Instead of "do these match?" it asks "how similar are these?"
- "Acme Corp" vs "ACME Corporation" → 87% similar
- "Johnson & Johnson" vs "Johnson and Johnson, Inc." → 84% similar
- "Acme Corp" vs "Amazon" → 12% similar
You set a threshold — say, 80% — and anything above that is considered a match. Anything below is not. The gray zone (70-80%) gets flagged for human review.
This catches the real-world variations that exact matching misses.
Step-by-Step: Matching Two Company Lists
Here's the practical process for combining two lists.
Step 1: Combine Both Lists Into One Spreadsheet
Create a single spreadsheet with all records from both sources. Add a column called "Source" to track where each record came from.
| Company Name | Source | Other Data... |
|---|---|---|
| Acme Corp | CRM | ... |
| Johnson & Johnson | CRM | ... |
| ACME Corporation | Trade Show | ... |
| Tesla Motors Inc | Trade Show | ... |
| Johnson and Johnson, Inc. | Trade Show | ... |
This gives you one file to work with. The "Source" column lets you identify which records came from which original list — important when you decide what to merge.
Step 2: Run Fuzzy Matching on Company Names
Use a fuzzy matching tool to compare every company name against every other company name in your combined list. The tool will identify pairs that are similar enough to potentially be duplicates.
With DedupFuzzy, you:
- Upload your combined CSV
- Select the company name column
- Get results showing duplicate pairs with similarity scores
The output looks like this:
| Company 1 | Company 2 | Similarity |
|---|---|---|
| Acme Corp | ACME Corporation | 87% |
| Johnson & Johnson | Johnson and Johnson, Inc. | 84% |
Step 3: Review the Matches
Not every high-similarity pair is a real match. "Apple Inc" and "Maple Inc" are 73% similar but completely different companies.
Go through the matches and confirm:
- 90%+ similarity: Almost always real matches. Quick review.
- 80-90% similarity: Usually real matches. Worth a closer look.
- 70-80% similarity: Mixed bag. Need human judgment.
- Below 70%: Rarely real matches. Usually safe to ignore.
For each confirmed match, you now know which records from List A correspond to which records from List B.
Step 4: Decide What Data to Keep
For matched pairs, you need to decide:
- Which name to keep? Usually the more complete/formal version.
- How to merge other fields? If List A has a phone number and List B has an email, keep both. If both have phone numbers, pick the more recent or more complete one.
- What to do with non-matches? Companies that only appear in one list. Usually, keep them all.
Create a "master" record for each matched pair that combines the best data from both sources.
Step 5: Build Your Merged List
Your final list contains:
- Merged records (one record for each matched pair, with combined data)
- Unmatched records from List A (companies only in the CRM)
- Unmatched records from List B (companies only from the trade show)
You now have a single, deduplicated list ready for use.
Real Example: Merging CRM + Event Data
Let's walk through a realistic scenario.
List A (CRM): 2,000 company records built up over 3 years
List B (Event): 500 company records from a recent trade show
Marketing wants to import the event contacts into the CRM. But they don't want to create duplicates for companies already in the system.
Here's what happens:
- Combine both lists into one file with 2,500 rows
- Run fuzzy matching on company names
- Find 180 matches (companies from the event that are already in the CRM)
- Review matches, confirm 165 are real, reject 15 false positives
- For the 165 confirmed matches: update existing CRM records with new event data (contacts, notes, etc.)
- For the remaining 335 event companies: create new CRM records
Result: 335 genuinely new companies added. Zero duplicates created. Marketing happy. Sales happy. Data clean.
Alternative: Using a Matching Key
If your data has a shared identifier — like company domain/website — you can use that as a matching key first, then fuzzy match the remainder.
| Company Name | Domain | Source |
|---|---|---|
| Acme Corp | acme.com | CRM |
| ACME Corporation | acme.com | Event |
Here, you can match on domain first (exact match), then use fuzzy matching only for records where domain is missing or doesn't match.
This hybrid approach is faster for large datasets because domain matching is instant, and you only need to fuzzy match the leftovers.
Common Mistakes to Avoid
Mistake 1: Trusting similarity scores blindly. A 75% match isn't always a real match. "First National Bank" and "First National Bank of Chicago" might score high but be different organizations. Always review.
Mistake 2: Setting the threshold too low. If you accept 50% similarity as a match, you'll get tons of false positives. Start at 80% and lower it only if you're missing obvious matches.
Mistake 3: Forgetting the "Source" column. Without tracking where each record came from, you can't tell which list had better data for the merge.
Mistake 4: Not keeping backups. Always save your original lists before merging anything. If something goes wrong, you need to be able to start over.
Mistake 5: Manual matching for large lists. Eyeballing 5,000 records for duplicates takes forever and you'll miss things. Use a tool. Your time is worth more than that.
Tools for This Job
For small lists (under 500 records):
Use DedupFuzzy for free. Upload your CSV, get matches in 60 seconds, no signup required.
For medium lists (500-10,000 records):
DedupFuzzy handles this well. For more control, Python's rapidfuzz library is excellent if you're comfortable with code.
For large lists (10,000+ records):
You'll want a dedicated tool or custom code. At scale, you also need to think about blocking strategies (comparing only records that might plausibly match) to avoid comparing every record against every other record.
The Bottom Line
Matching and merging two company lists doesn't have to be painful. The key insight is that VLOOKUP is the wrong tool for this job. Company names are messy, and you need fuzzy matching to handle the messiness.
The process is straightforward:
- Combine both lists with a "Source" column
- Run fuzzy matching on company names
- Review matches (especially the 70-85% similarity zone)
- Merge data for confirmed matches
- Import everything into your final destination
Do this, and you get a clean combined list with no duplicates. Skip it, and you're cleaning up the mess for months.
Ready to merge your company lists? Upload your CSV and find matching records in about 60 seconds. Free for 500 rows, no signup required.
🚀 Try DedupFuzzy Free