Excel Tools

Fuzzy match two Excel lists by similarity

Pair each row of list A with the most similar row of list B, even when names have typos, accents, a different word order or suffixes such as Inc., Ltd or S.L. You see a 0–100 score for every pair and decide which ones to keep.

No lists at hand?

How to fuzzy match two lists in Excel

  1. Load both lists. A is the list you want to complete (for example, your CRM export) and B is the reference list (for example, the accounting system). Use Excel, ODS or CSV files, or paste a column straight from Excel.
  2. Pick the columns to compare. Usually the customer, supplier or product name. Add a column that must match exactly, such as country or postcode, if you have one.
  3. Click Find matches. Every row of A gets its most similar rows of B, with a score from 0 to 100.
  4. Review and adjust. Move the threshold, check the close calls, switch to the top 3 candidates to pick another one, and accept or reject any row by hand.
  5. Download the Excel file. It contains list A with the matched row of B, the score and the status, plus the unmatched rows of each list and a summary of the settings.

Private by design: no upload

Customer, supplier and employee lists are personal or confidential data. Here they are read and matched by JavaScript inside your browser, in a background worker, and never sent to a server. The page only downloads, the first time, its own code and the open-source library that reads Excel files (SheetJS).

You can check it in the Network tab of your browser’s developer tools, or disconnect from the internet after the page has loaded and keep working.

How the similarity score works

Both texts are normalised first, so that differences that do not matter are ignored: accents and case (“JOSÉ” = “jose”), punctuation and repeated spaces, legal suffixes such as Inc., Corp., LLC, Ltd, GmbH, SAS, S.L., S.A. or S.A. de C.V., and, if you want, common words such as “the”, “of”, “de” or “del”. Then three measures are combined into one score:

Two rules keep false matches down: when both texts contain numbers and they differ, the score is multiplied by 0.8; and when each side has a word the other one lacks entirely (“José García López” and “José García Pérez”), it is multiplied by 0.88. These are real scores from this tool:

List AList BScoreWhy
José GarcíaJose Garcia S.L.100Same after removing accents and the suffix
Acme CorporationACME Corp.100Case and legal suffix
Jon SmithJohn Smith96One missing letter
Microsoft CorporationMicrosft Corp96Typo
Müller GmbHMueller GmbH92Different transliteration
Banco SantanderSantander88One name contained in the other
José García LópezJosé García Pérez80Probably two different people
Calle Mayor 5Calle Mayor 666Different numbers
International Business MachinesIBM34Abbreviations are not expanded

Fuzzy Lookup is not an option on Mac or the web

Microsoft’s free Fuzzy Lookup add-in was published as a separate download for desktop Excel on Windows. It installs as a Windows add-in, so it cannot run in Excel for Mac, in Excel for the web or on an iPad, and it is not part of Excel itself. Power Query, inside Excel for Windows with Microsoft 365, offers a “Use fuzzy matching” option when merging queries, but it requires building the merge step by step and is not available in every edition and platform.

This tool needs no add-in, no macro and no admin rights. It works in any modern browser on Mac, Windows, Linux or a Chromebook, and it gives you a review table that Fuzzy Lookup does not have: you see every candidate with its score and decide before anything is written.

Fuzzy matching vs VLOOKUP and XLOOKUP

VLOOKUP, XLOOKUP and INDEX/MATCH are exact lookups for text: “Acme Inc.” will not find “ACME, Inc”, and an extra space breaks the lookup. Many people try =VLOOKUP(A2,B:C,2,TRUE) hoping for an approximate result, but that mode is meant for sorted numeric ranges such as tax brackets: on text it returns the closest value that sorts alphabetically before the one searched, which is usually the wrong row. Wildcards ("*"&A2&"*") only help when one text is literally inside the other.

If both lists share a reliable ID, you do not need fuzzy matching: merge the two files by that column instead.

Common uses

Known limitations

Frequently asked questions

Is the fuzzy match tool really free?

Yes. It is 100% free, with no usage limits, no account and no sign-up. There is no paid plan and no feature is locked.

Are my files uploaded to a server?

No. Both lists are read and matched inside your browser. The page only downloads its own code and open-source spreadsheet libraries from this site; the contents and names of your files are never sent anywhere. If you accept analytics cookies, Google Analytics receives anonymous usage data such as page views, never the contents or names of your files.

How is the similarity score calculated?

Both texts are first normalised: accents, case, punctuation, extra spaces, company suffixes and, optionally, common words such as “the” or “de” are removed. Then three measures are combined into one score from 0 to 100: Jaro-Winkler (good for typos and shared beginnings), a token sort ratio (the same words in another order) and a token set ratio (one name contained in a longer one). Different numbers or a whole word replaced by another lower the score.

Which threshold should I use?

Start with 85. Identical names after normalisation score 100, small typos usually 90–97 and one name contained in another around 85–90. Below 80 you will see more false matches, such as two people who share a first name and a surname. Move the slider and check the rows marked as close calls before you download.

Is this an alternative to Microsoft Fuzzy Lookup on Mac?

Yes. Microsoft’s Fuzzy Lookup add-in is a Windows-only add-in for desktop Excel, so it does not run in Excel for Mac or Excel for the web. This tool runs in any modern browser, so it works on Mac, Windows, Linux and Chromebook, next to any version of Excel, Numbers or Google Sheets.

How is it different from VLOOKUP or XLOOKUP?

VLOOKUP and XLOOKUP with exact match only find identical text: “Acme Inc.” will not find “ACME Inc”. Their approximate mode is meant for sorted numbers such as price bands, not for similar text. Fuzzy matching compares how similar two texts are and returns the closest one with a score, so you can review it.

How many rows can it handle?

There is no fixed limit. Candidates are pre-selected with a trigram index, so 10,000 × 10,000 rows usually take a few seconds on a recent laptop. Larger lists work too; the practical limit is your device’s memory.

What are the columns that must match exactly?

Optional extra columns, such as country, city or postcode, that must be equal on both sides before two rows are compared. They avoid false matches between companies with the same name in different countries and make large lists faster.

Analytics: only if you accept cookies, the page loads Google Analytics (through Google Tag Manager) to count visits and see which tools are used. It never receives the contents or names of your files. You can change your choice at any time with “Cookie settings” at the bottom of the page.