BlogGIS Tutorials

How to Generate a Zip Codes in Radius List in Google Sheets

6 July 2026·8 min read

To generate a zip codes in radius list in Google Sheets, use the =WITHIN_RADIUS() custom function from the InstaMaps add-on. If you provide a target address in B2 and a radius mileage in C2, the formula matches this against your address column, returning a clean list of locations inside the boundary.

This process is built for regional route planners, delivery dispatchers, and local marketers handling large location datasets. Instead of manually cross-referencing boundaries in separate mapping software, you output a filtered list directly within your existing spreadsheet environment.

TL;DR
  • Generating a zip codes in radius list usually requires paid GIS software, but you can automate it in Google Sheets.
  • Use the InstaMaps add-on to geocode your starting point and calculate distances against your existing address data.
  • The =WITHIN_RADIUS() formula filters datasets down to exact mileage or kilometre constraints.
  • Combine =WITHIN_RADIUS() with =ZIPCODE() to extract a clean, deduplicated list of target postcodes.
  • Map the resulting list dynamically using =INSTAMAP() to share interactive URLs with your team.
  • InstaMaps provides 100 free daily lookups (up to 1,000/day with a free email unlock) without requiring billing details.

The problem with manual radius searches

Compiling a zip codes in radius list usually means exporting your spreadsheet data to a third-party mapping website. This workflow forces you to upload sensitive customer addresses or lead lists to external servers, wait for the site to process the coordinates, and manually copy the filtered results back into your workbook. If you add ten new addresses to your sheet tomorrow, you must repeat the entire upload and export process. This creates static data that breaks the moment your underlying information changes.

If your operation relies on current location data, copying and pasting coordinates introduces human error. A single misaligned row during a CSV export can route a crew to the wrong part of the state. Third-party platforms also throttle free radius searches, requiring paid subscriptions for lists exceeding a few hundred rows.

InstaMaps handles this natively inside Google Sheets. By running calculations directly in your workbook, your data never leaves your Google Drive environment. You can process thousands of rows without paying for a separate web tool, and your radius parameters recalculate immediately when you update an address. The =WITHIN_RADIUS() function compares your target coordinates against your full dataset, returning a precise list of locations that meet your specific distance requirements.

Step-by-step: Generating a zip codes in radius list

Generating a list of postcodes within a specific mileage requires chaining a few specific functions. You can type these manually or use the InstaMaps sidebar to automate the insertion.

  1. Open your Google Sheet containing the address data.

  2. Navigate to Extensions > InstaMaps > Enable formulas to open the sidebar.

  3. Generate coordinates for your origin point. If your anchor shop is in cell A2, click into B2 and use the sidebar to insert =GEOCODE(A2). If you have a list of target addresses in column A (A3:A502), insert =GEOCODE(A3:A502) into B3:B502 to process the entire array.

  4. Define your search radius. Place your target distance (e.g., 15 for 15 miles) in cell C1.

  5. Apply the radius filter. In column C, starting at C3, use the sidebar to insert =WITHIN_RADIUS(). A realistic syntax looks like =WITHIN_RADIUS(B3:B502, B2, C1). The function evaluates the coordinate range in column B against your anchor point in B2, strictly adhering to the radius limit in C1.

  6. Extract the matching postcodes. Because =WITHIN_RADIUS() filters the rows, you can wrap it around your postcode extractor to return only the valid entries. For example, =POSTCODE(WITHIN_RADIUS(A3:A502, B2, C1)) generates an isolated list of postcodes that fall inside your defined ring.

Worked example: Routing 5 crews across a 200-home territory

Consider a field service business managing a 200-home inspection list. The unsorted addresses sit in A2:A201. The central depot address is in cell A1.

  1. Geocode the anchor and the farm: Insert =GEOCODE(A1) into B1 and =GEOCODE(A2:A201) into B2:B201. This processes 200 lookups, leaving you 800 lookups remaining on your free tier for the day.

  2. Filter by the 15-mile limit: Place the number 15 in cell C1. In cell D2, insert =WITHIN_RADIUS(A2:A201, B2:B201, B1, C1). This cross-references the 200 coordinates against the depot. The output returns exactly 47 homes that sit within the 15-mile boundary.

  3. Sort the filtered results: With 47 homes isolated, you need to assign them to 5 separate crews without overlapping territories. Pass the =WITHIN_RADIUS() results into =SORT_BY_DISTANCE(). For instance, =SORT_BY_DISTANCE(FILTER(A2:A201, D2:D201="TRUE"), B1) will order those 47 homes from nearest to furthest relative to the depot coordinates in B1.

  4. Assign the stops: Divide the sorted 47 homes sequentially. Allocate the first nine homes to Crew 1, the next nine to Crew 2, and so forth. Column E should contain the crew numbers (1 through 5).

  5. Generate driving routes: For each crew's nine-stop segment, combine the addresses into a single routing instruction. Because =ROUTE_LINK() relies on Google Maps' official URL scheme, you cannot pass more than 11 stops into a single formula. By breaking the 47 homes into groups of nine, you stay well under the routing limit. If cells F2:F10 contain the addresses for Crew 1, insert =ROUTE_LINK(JOIN(", ", F2:F10)) to generate a clickable navigation URL.

Visualising the radius data with live maps

Generating a static list of 47 filtered postcodes is only half the process; operational teams require a visual aid to understand the geography. Standard Google Sheets mapping tools require constant manual refreshing when data changes.

InstaMaps solves this through the =INSTAMAP() function. Instead of taking screenshots or exporting to third-party software, you can pass your filtered array directly into the formula. For example, =INSTAMAP(FILTER(A2:A201, D2:D201="TRUE")) creates a hosted map based strictly on the homes that passed your radius test.

The formula returns a standard web link. When operations managers click this link, they view a live, hosted shareable map URL in their browser. Because the map pulls directly from your cell ranges, the visual markers update automatically when you alter the spreadsheet. If you change the radius parameter in cell C1 from 15 miles to 10 miles, the map instantly drops the markers outside the new boundary without requiring you to rebuild the link.

If your radius parameters change daily, you can use the InstaMaps sidebar to drop the =INSTAMAP() formula into a locked cell, allowing dispatchers to monitor the live visual state of the daily territories without opening the Google Sheet itself.

Limits and honest alternatives

The InstaMaps free tier permits 100 lookups per day. Verifying your account via the free email unlock increases this limit to 1,000 lookups per day. If your target list contains 4,500 rows, generating a complete zip codes in radius list will require batching your data across five days. Keep in mind that daily quotas deplete based on the initial coordinate requests. Running =GEOCODE(A2:A50) consumes 49 daily lookups, whereas applying =WITHIN_RADIUS() against existing coordinate pairs operates without consuming your daily quota.

Edge cases typically involve formatting errors or missing data. Unrecognised addresses frequently occur when postcodes are formatted as numerical values, which strips leading zeros (for example, 02134 becoming 2134). Format your target column as Plain Text before pasting data to prevent this. Running =CLEAN_ADDRESS(A2:A450) before executing radius checks reduces these failures by standardising abbreviations. When =WITHIN_RADIUS() encounters a null coordinate pair, it outputs a coordinate error rather than a false negative.

This workflow relies on straight-line distance mathematics. If your objective involves overlapping polygons, drawing irregular multi-sided boundaries, or intersecting multiple non-concentric radii, Google Sheets is not the correct environment. Desktop GIS software like QGIS is explicitly designed for complex spatial joins and polygon mapping. Alternatively, if you simply need driving metrics instead of straight-line boundaries, replace the radius formula with =TRAVEL_TIME() or =DISTANCE() to calculate exact road routing.

Who this is for (Wirecutter-style)

Local franchise owners: If you operate three delivery shops and need to define strict 5-mile operational zones, this workflow filters your customer database instantly. You can append the =WITHIN_RADIUS() outputs to your CRM exports to ensure drivers are not given orders outside the agreed boundary.

Sales representatives: Reps managing a 200-home farm territory can isolate high-density clusters before scheduling appointments. By sorting the returned list with =SORT_BY_DISTANCE(), you prioritise the closest leads first.

Event organisers: If you are sourcing nearby postcodes for a regional festival, you can map attendee origins and generate a live hosted shareable map URL using =INSTAMAP() to coordinate volunteer distribution.

Who should skip this: Users who need complex demographic polygon mapping, such as layering census tract data, average household income heat maps, or drawing irregular boundaries that ignore strict mileage limits. Sheets cannot process these spatial overlays.

Using the dedicated tool page

Instead of manually configuring the spreadsheet formulas from scratch, navigate to the /tools/zip-codes-in-radius page. This internal resource provides direct access to a pre-built template designed specifically for radius filtering. Using this template eliminates standard setup friction. The document arrives pre-loaded with the required column headers, properly configured =WITHIN_RADIUS() logic, and an active map generation cell. By accessing the tool page directly, you bypass the need to manually write cell references or troubleshoot syntax errors, providing immediate functionality for your address data.

Try it free

Map your Salesforce accounts in under 5 minutes — no admin setup.

Install Free →

Common Questions

How do I get a list of zip codes within a radius?

Open your Google Sheet and install the InstaMaps add-on. Use the =ZIPCODE(A2:A50) function to ensure your locations have valid postal codes, then apply =WITHIN_RADIUS(target_cell, radius_miles, data_range). For example, =WITHIN_RADIUS(C1, 25, A2:A200) filters your dataset down to entries within 25 miles of the coordinate in C1. You can then use the InstaMaps sidebar to insert =INSTAMAP() to map the output visually.

Can Google Sheets calculate distance between two addresses?

Yes, by using the InstaMaps =DISTANCE() function. After geocoding your origin and destination columns with =GEOCODE(), you can calculate exact travel distances. The formula =DISTANCE(A2, B2) returns the driving distance, allowing you to apply logic based on exact mileage thresholds rather than estimating straight lines.

How many zip codes can I process daily with the free InstaMaps tier?

The standard free tier provides 100 lookups per day. If you verify your account with a free email registration, this limit increases to 1,000 lookups per day. A lookup occurs when the add-on requests new data, so calculating a radius over a 500-row spreadsheet will consume exactly 500 lookups if the cells are uncached.

Does the =WITHIN_RADIUS() formula support kilometres instead of miles?

Yes, the =WITHIN_RADIUS() formula accepts a unit parameter. While it defaults to miles for standard routing, you can append "km" or set the unit flag to force metric calculations. If your operation handles a 50-kilometre service area around a depot, specify kilometres in the function parameters to ensure the output matches your local mapping requirements.

How do I share my filtered radius map with a team?

Once your radius data is filtered, type =INSTAMAP(A2:B100) into an empty cell to generate a live hosted shareable map URL. This URL is accessible via any standard web browser without requiring a Google Sheets login. Anyone on your team with the link can view the plotted locations, and the map updates automatically if you modify the radius or underlying spreadsheet rows.

Will the map update if I change the radius mileage?

Yes, the =INSTAMAP() function is directly tethered to your cell ranges. If you alter the mileage value in your =WITHIN_RADIUS() criteria, the formula recalculates the list of valid addresses. The hosted map instantly reflects these additions or removals, ensuring dispatchers or field crews never look at an outdated visualisation.

Build your zip codes in radius list

Stop cross-referencing postal boundaries manually. Use the InstaMaps sidebar and the Build-the-workflow button to automatically generate radius lists and live shareable maps.

Install Instamaps free