Free Fuzzy Matching Tool for Your Browser

About the author

Andrew Apell is the creator of Flookup Data Wrangler and has built data cleaning tools for Google Sheets since 2018. The method in this post reflects work on large reconciliation tasks with a government team and continued testing with Sheets users. Every Flookup result described here can be checked in the demo spreadsheet linked from Documentation before purchase.
Read Our Story for the background, or contact the team with any questions about this post, including corrections, unclear steps or use cases we have not covered yet.

Key Takeaways

  • The free fuzzy matching tool compares two lists and returns a similarity score for every match.
  • Every pair gets a clear percentage score, so you can see exactly how close two values are.
  • Everything runs in your browser; nothing is uploaded.
  • For full dataset matching inside Google Sheets, Flookup adds phonetic and semantic matching.

Introduction

Exact matching treats "John Smith" and "Jon Smyth" as different values, and it treats "Acme Corporation" and "Acme Corp" as different values. The same applies to "Miriam K." and "Miriam Kamau".

A human sees one record written four ways.

The free fuzzy matching tool handles those comparisons. Paste two lists, press Match and the tool returns a similarity percentage for every pair. Processing runs in the browser and nothing is uploaded. Open the Fuzzy Matching Tool.


What Is Fuzzy Matching?

Fuzzy matching is the process of finding values that are similar but not identical. Instead of asking "are these two strings exactly the same?", it asks "how close are these two strings?" and returns a score.

That one question is behind a huge share of real data work: cleaning customer lists, reconciling vendor names, merging leads from two systems and deduplicating CRM records.


What the Tool Does

The tool supports two modes:

  • Best match: for every item in list A, find the closest item in list B and its similarity score.
  • Near-duplicates: within a single list, find every pair that looks similar.

Each mode answers a different need. Best match is for comparing two lists.
Near-duplicates is for finding duplicates within one list, like duplicate customer names in a spreadsheet.


How It Works

How Similarity Is Scored

Similarity scoring combines character matching with weightings that prioritise whole words, matching order and character proximity. The tool supports three common scoring algorithms:

  • Levenshtein Distance: counts the minimum number of edits required to transform one string into another. Simpler but less context-aware.
  • Jaro-Winkler: emphasises matching characters at the start of strings, which helps with names like "Jon Smith" vs "John Smyth".
  • Cosine Similarity: treats strings as bags of words and measures overlap, better for longer text or sentences.

Users can adjust a threshold to filter matches. A 90% threshold returns only the most confident matches.
Lower the threshold to catch more potential matches, then review the borderline rows by hand.

Use Cases

  • Cleaning customer lists by reconciling names, addresses and phone numbers across multiple systems.
  • Finding duplicate records in a CRM when two salespeople entered the same contact separately.
  • Matching product descriptions across catalogues from different vendors.
  • Verifying that payroll exports have no unexpected additions or changes.
  • Comparing user lists across two applications to detect account merging.

A Worked Example You Can Reproduce

The tool ships with sample data, so you can watch a full pass before trusting it with your own lists. Press Try sample and it loads ten values in list A, including John Smith, Acme Corporation and Global Logistics Limited, and five values in list B. Leave the threshold at its default of 85% and press Match. The table below records the measured output of that exact run.

Value in List A Best Match in List B Similarity Score
John Smith Jon Smyth 92%
JOHN SMITH Jon Smyth 92%
Jon Smith Jon Smyth 96%
Acme Corporation Acme Corp 91%
Acme Corp Acme Corp 100%
Jane Doe JANE DOE 100%
Miriam K. Miriam Kamau 91%
Miriam Kamau Miriam Kamau 100%
Global Logistics Ltd Global Logistics Ltd 100%
Global Logistics Limited Global Logistics Ltd 97%

The run compared all 50 pairs and matched ten of ten list A items at the 85% threshold, with an average best-match score of 96%. Three rows are worth studying. Jon Smith against Jon Smyth scores 96%, because the difference is a single letter inside a name. Acme Corporation against Acme Corp scores 91% despite the different word counts. Miriam K. against Miriam Kamau scores 91%, so an abbreviated forename still clears the threshold. The remaining rows are casing variants or exact copies that score at or near 100%.

Every number in the table can be reproduced by pressing Try sample and then Match. The Copy and Download CSV buttons export the same results, and no list in the example leaves your browser.


Failure Modes to Watch For

  • Threshold set too high: genuine matches with two or three typos fall below a 95% cut-off and never reach the results. Start near the default and lower it until borderline pairs appear.
  • Threshold set too low: scores in the 60% to 70% range often connect values that merely share words, so review every row instead of merging on the score alone.
  • Shared partners: best match mode gives every item in list A one partner and does not reserve matches, so two items can map to the same value in list B. Check for repeated partners before merging.
  • Punctuation and abbreviations: comparisons ignore casing and extra spaces but not punctuation, so St. against Street scores lower than the meaning suggests. Standardise abbreviations before matching.
  • Very short values: one character is a large share of a short string, so short codes swing further than long names. Match short identifiers exactly wherever the data allows it.

Review work in reconciliation projects shows that most decisions cluster near the threshold, so treat the pairs scoring just above and just below your cut-off as the review queue rather than trusting a single number.


When to Use Something Stronger

When you need matching across entire CSV/Excel datasets with AI enrich and fuzzy dedupe, save the workflow as a reusable cleaning template in Flookup Data Wrangler.

The tool compares text similarity. Real datasets often need more: matching across an entire spreadsheet, handling abbreviations and word order or reconciling thousands of rows against a master list. That is what Flookup Data Wrangler does inside Google Sheets, with configurable thresholds, phonetic matching and AI-powered semantic matching. See the data cleaning tools for the full range.


From One Free Check to Fuzzy Matching at Spreadsheet Scale

The Fuzzy Matching Tool is the fastest way to answer "are these the same?"
Paste two lists, set a threshold and every value comes back with a percentage score you can act on.
Because everything runs in your browser, it is safe for customer data, lead lists and any other sensitive comparisons.

Use it for quick checks and one-off merges. When matching needs to happen inside Google Sheets at dataset scale, with phonetic and semantic matching, scheduled runs and a similarity score on every row, Flookup Data Wrangler is the next step.


You Might Also Like


Frequently Asked Questions

What is fuzzy matching?

Fuzzy matching finds values that are similar but not identical, such as "John Smith" and "Jon Smyth". It scores how close two strings are so you can spot near-duplicates that exact matching misses.

How does the free Fuzzy Matching Tool work?

Paste two lists, press Match and the tool compares every item in list A against list B, returning the best match and a percentage score for each item.

Is the Fuzzy Matching Tool private?

Yes. Everything runs in your browser in a background worker. Your lists are never uploaded to a server.

How is similarity scored?

Each pair of values is compared and given a single percentage score, so you can see at a glance how close two entries are. The score is high for values that look alike and low for unrelated ones.

What happens if two items in list A match the same item in list B?

Best match mode returns one best match per item and does not reserve partners, so two items can map to the same value in list B. Check the score column and the repeated partner before merging.

Does the tool normalise values before scoring?

Yes. Comparisons are case-insensitive and extra spaces are collapsed. Punctuation and abbreviations are left as typed, so standardise those first when matching addresses or product codes.