Blog Open the app

Fuzzy Matching in Google Sheets: Why There's No Built-In Solution (And What to Use Instead)

April 30, 2026 · 8 min read

Every few months, someone searches "Google Sheets fuzzy matching" hoping to find a built-in function they missed. Maybe there's a secret FUZZYMATCH() hiding in the function list. Maybe VLOOKUP has an "approximate" mode that works for text.

There isn't. Google Sheets doesn't have native fuzzy matching for text, and it probably never will.

This isn't an oversight. It's a design limitation. Let me explain why, what workarounds exist, and what to use when you actually need to match company names that aren't spelled exactly the same.

What People Mean by "Fuzzy Matching in Google Sheets"

When people ask for fuzzy matching, they usually want one of two things:

1. Finding duplicates within a list. You have a list of company names and want to find entries that are probably the same company: "Acme Corp" and "ACME Corporation" and "Acme Inc."

2. Matching between two lists. You have a list of companies from your CRM and another from a trade show, and want to see which companies appear in both — even when the names are spelled differently.

Both require comparing text strings for similarity rather than exact equality. That's fuzzy matching.

Why Google Sheets Doesn't Have It

Fuzzy matching doesn't fit the spreadsheet formula model. Here's why:

It's Computationally Expensive

Finding duplicates in a list of 1,000 names means comparing every name to every other name. That's roughly 500,000 comparisons. Each comparison involves calculating string similarity — not a simple operation.

Spreadsheets recalculate formulas constantly. Every time you edit a cell, every formula updates. A fuzzy matching formula that runs 500,000 comparisons would make your sheet unusably slow.

It Requires Configuration

Fuzzy matching needs a similarity threshold. Are "Acme Corp" and "Acme Holdings Corp" the same company? Depends on your data. In some datasets, these are duplicates. In others, they're different entities.

You need to decide: What similarity percentage counts as a match? 80%? 85%? 90%? This isn't something a single formula can handle well. It requires iteration and human judgment.

Results Need Human Review

Fuzzy matching produces candidates, not certainties. "Apple Inc" and "Maple Inc" might score 73% similar, but they're obviously different companies. "Ernst & Young" and "EY" might score 15% similar but are the same company.

You need to review the matches. That's not a formula output — it's a workflow.

The "Fuzzy VLOOKUP" Misconception

People often ask about "fuzzy VLOOKUP" because VLOOKUP has an [is_sorted] parameter that enables "approximate" matching.

This is misleading. VLOOKUP's approximate match is for numbers only. It finds the largest value less than or equal to your lookup value. It's designed for things like tax brackets or grade cutoffs, not for matching "Acme Corp" to "ACME Corporation."

For text, VLOOKUP is strictly exact match. There's no workaround.

Workarounds That Kind of Work

If you're determined to stay in Google Sheets, here are some approaches. They're limited, but better than nothing.

Workaround 1: Normalize Before Matching

Create helper columns that standardize your text before using VLOOKUP:

Chain these together:

=TRIM(UPPER(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "Inc.", ""), "Corp.", ""), "LLC", "")))

Now "Acme Corp." and "ACME CORP" both become "ACME" and VLOOKUP will match them.

Limitations: This only catches exact matches after normalization. "Acme" and "Acme Holdings" still won't match. Abbreviations like "GE" and "General Electric" still won't match. You're not doing fuzzy matching — you're just cleaning data before exact matching.

Workaround 2: Use SEARCH for Partial Matches

The SEARCH function finds text within text:

=IF(ISNUMBER(SEARCH("acme", A2)), "Match", "No match")

This returns "Match" if cell A2 contains "acme" anywhere.

You could use this to flag cells containing a specific keyword. But it's not fuzzy matching — it's substring search. And you have to specify the exact keyword you're looking for.

Workaround 3: Google Sheets Add-ons

There are add-ons in the Google Workspace Marketplace that claim to do fuzzy matching. Most are basic and have limitations:

If you try this route, test with a small sample first and check reviews carefully.

Workaround 4: Apps Script Custom Function

If you know JavaScript, you can write a custom function using Google Apps Script that implements Levenshtein distance or similar algorithms.

Something like:

=SIMILARITY(A2, B2) returning a percentage similarity score.

This works, but custom functions in Google Sheets are slow. They're recalculated frequently and have execution time limits. A dataset of 1,000 rows comparing each row against a list of 100 would likely time out.

Apps Script is better suited for running as a batch process (triggered manually) that writes results to a sheet, not as a real-time formula.

What to Use Instead

If you have real fuzzy matching needs — finding duplicates among hundreds or thousands of company names — stop trying to make Google Sheets do something it wasn't designed for.

The practical workflow is:

  1. Export your data from Google Sheets (File → Download → CSV)
  2. Run fuzzy matching in a dedicated tool
  3. Import results back into Google Sheets

This takes about 5 minutes total, and you get actual fuzzy matching that catches variations like "Acme Corp" vs "ACME Corporation" vs "Acme, Inc."

Option 1: Online Fuzzy Matching Tools

For most people, an online tool is fastest. Upload your CSV, select the column with company names, get results.

DedupFuzzy does exactly this:

  1. Upload your CSV (exported from Google Sheets)
  2. Select the company name column
  3. See duplicate pairs with similarity scores in about 60 seconds
  4. Review matches, download results
  5. Import back to Google Sheets if needed

Free for files up to 500 rows. No signup required.

Option 2: Python (If You Code)

Python's rapidfuzz library is excellent for fuzzy matching. If you're comfortable with code:

  1. Export CSV from Google Sheets
  2. Write a Python script to compare names and output matches
  3. Import results back to Sheets

This gives you full control over algorithms and thresholds, but requires programming knowledge.

Option 3: Excel Power Query

If you also use Excel, Power Query has a "Fuzzy Merge" feature. Export from Google Sheets, open in Excel, use Power Query, export back.

It's clunky but works for basic cases. The fuzzy matching quality isn't as good as dedicated tools, especially for company names with abbreviations.

When You Should Just Clean the Data

Sometimes you don't need fuzzy matching at all. You need data standardization.

If your duplicates are mostly:

Then a cleanup pass with helper columns might be enough. Normalize everything, then use standard duplicate removal.

Fuzzy matching is for when names are genuinely different: abbreviations, word order changes, missing words, typos. If your data is just inconsistently formatted, cleaning is faster than fuzzy matching.

The Bottom Line

Google Sheets doesn't have fuzzy matching because it's the wrong tool for the job. Fuzzy matching is computationally heavy, requires human judgment, and doesn't fit the formula model.

Your options:

Stop fighting the tool. Export, match, import. It takes 5 minutes and actually works.

Need to fuzzy match company names from Google Sheets? Export your data as CSV, upload it here, and get matches in about 60 seconds. Free for 500 rows, no signup required.

🚀 Try DedupFuzzy Free