Fuzzy Address Matching, How to Match Addresses in Google Sheets

By Andrew Apell, creator of Flookup Data Wrangler. Published , updated

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

  • Fuzzy address matching links records for the same physical location despite spelling, abbreviation and format differences.
  • Normalise and standardise address fields before matching, then compare component by component rather than as a whole string.
  • A similarity score with a confidence threshold keeps matching accurate and reviewable.
  • Flookup Data Wrangler brings address normalisation and fuzzy deduplication into Google Sheets.

The Short Answer at a Glance

Fuzzy address matching is the process of linking addresses that refer to the same location but are written differently. "123 Main St", "123 Main Street" and "123 MAIN STREET, Apt 4" all describe the same building, but no exact match will find them.

The reliable approach has two parts. First, normalise and standardise every address so consistent components are comparable. Second, apply fuzzy matching to the normalised fields, comparing street name, number, unit and postcode and scoring how close the records are.

Done this way, fuzzy address matching catches typos, abbreviations and formatting differences without merging addresses that only look alike but are actually different places.


Why Address Matching Is Hard

Addresses combine numbers and words, which makes them different from names or descriptions:

These variations mean a whole-string comparison produces false negatives, two copies of the same address scored as different.
The solution is to break addresses into components and compare those.


Normalise and Standardise First

Before any fuzzy matching, put every address in a consistent form. Standard normalisation steps:

For United States addresses, USPS Publication 28 defines the official abbreviations for street suffixes and unit designators, which makes it the reference list to standardise against.

Flookup's Text Standardisation handles the abbreviation and punctuation work. Standardising phone numbers demonstrates the same pattern for another field type.


Match by Component, Not Whole String

Once addresses are split into components, matching becomes far more reliable. Compare the street name with fuzzy similarity, the street number exactly, the postcode exactly and the city exactly. A record is a match when the core components agree.

This structure prevents false positives. Two addresses on "Main Street" in different cities share the same street name but fail the city and postcode checks.
Comparing the full string would have scored them close; comparing components separates them correctly.

Component matching is why address matching tools perform better than a generic fuzzy string compare, they understand the parts of an address.


The Address Matching Workflow

  1. Profile the address columns to see which components are present and where the variation is.
  2. Standardise casing, punctuation and abbreviations.
  3. Split addresses into street, number, unit, city, region and postcode columns.
  4. Match each component with the appropriate comparison, exact for numbers and postcodes, fuzzy for street names.
  5. Score the record with a confidence value and set a threshold for acceptance.
  6. Review the low-confidence matches rather than accepting everything.

A Worked Example

Take one master record, 123 Main Street, and four rows from a merged shipping list. The table below shows each row after normalisation, with the street suffix expanded and casing lowered, and the verdict the component rules produce.

Raw Row Number Street After Standardisation Unit Verdict
123 Main St 123 main street none Match
123 MAIN STREET 123 main street none Match
123 Main Street, Apt 4 123 main street 4 Same building, different dwelling, do not merge
124 Main St 124 main street none No match

The number and the postcode compare exactly, the street name compares with fuzzy similarity so a typo such as Mian still lands close, and the unit column decides the final merge. Review experience with address lists shows most false merges trace back to a missing unit number, so treat the unit column as part of the exact-match set rather than an optional extra.

For a quick check outside Sheets, the free fuzzy matching tool scores a column of street names against a reference list in the browser, which is enough to size up how much variation the fuzzy pass must absorb before running the full workflow.


Address Matching in Google Sheets

Address lists are frequently maintained in spreadsheets and Google Sheets is a practical place to clean and match them. Flookup Data Wrangler provides the pieces:

For a shipping list, a CRM export or a merged database, this turns scattered address variations into one clean set you can trust.


Common Pitfalls to Avoid


Matching Addresses by Similarity Rather Than Exact Text

Fuzzy address matching works when you treat addresses as structured data, not as free text. Normalise, split into components, match each part appropriately and gate the result on a confidence score.
That combination catches real duplicates and leaves genuine differences alone.

In Google Sheets, Flookup Data Wrangler automates the normalisation and fuzzy matching steps.
See the workflow on sample data in the demo spreadsheet, then install from the Google Workspace Marketplace and clean your address list in minutes.


Frequently Asked Questions

What is fuzzy address matching?

Fuzzy address matching is the process of linking addresses that refer to the same physical location but differ in spelling, abbreviation, casing or format, such as "123 Main St" and "123 Main Street".

Why is matching addresses so hard?

Addresses are hard to match because they mix numbers and words, have many abbreviations such as St, Rd, Ave and Apt, vary in order and punctuation and include inconsistent components like missing postcodes or unit numbers.

How do I match addresses in Google Sheets?

Normalise and standardise the address columns first, then use a fuzzy matching tool like Flookup Data Wrangler to compare address fields and return the closest match with a similarity score.

Can fuzzy matching deduplicate a customer address list?

Yes. Flookup's Smart Deduplicate groups near-duplicate address records using multiple similarity strategies and ranks the groups by confidence, so you can merge duplicates before they cause shipping or reporting errors.

Does normalising addresses guarantee matches?

No. Normalisation removes formatting differences, while typos in street names still need fuzzy scoring. Normalise first, then match, and review the low-confidence rows.

Ready to Try Flookup?

Install Flookup Data Wrangler from the Google Workspace Marketplace and match your first messy address list in minutes.

The free tier starts at install with no credit card, plus a 7-day AI trial for the AI features, and the demo spreadsheet runs every formula fully on sample data.

Work through the get-started guide when you are ready, and read the documentation for the full workflow.


You Might Also Like