The short answer
Google Sheets has no built-in reverse geocoding function. To turn a column of latitude and longitude pairs into addresses, use an Apps Script, an add-on such as MapRows, or a batch service. Reverse geocoding starts with a coordinate and looks for an address or place associated with it. That is the opposite direction from turning an address into coordinates.
For a few points, paste each pair into Google Maps and copy the result. For a larger list, the free Apps Script in our reverse geocoding guide runs from a spreadsheet menu and writes address components into the sheet. It takes some setup and is subject to Google’s quotas and applicable storage terms.
MapRows provides a Reverse tab in a sidebar. Choose separate latitude and longitude columns or one combined column, choose the fields you need and run the task. Each coordinate pair costs one lookup. Free allows 100 lookups per day; Pro allows 2,500 per day, subject to fair use and shared capacity. A large task can pause and resume.
If you only need the county and FIPS code for U.S. points, the free Census custom function in the companion guide may be enough. If you need a full address column, check the returned addresses carefully: a reverse result can describe a nearby address or place rather than the exact spot represented by the coordinates.
Prepare your coordinate columns
Give the sheet a header row and keep one coordinate pair on each data row. Two columns named Latitude and Longitude make the order easy to see. Keep a record identifier or other source information on the same row so you can trace a result back to its original point.
Use decimal degrees, such as 34.0522 and -118.2437, rather than degrees, minutes and seconds. Latitude must be between -90 and 90; longitude must be between -180 and 180. Preserve minus signs. A missing sign can put a valid-looking point far from its intended location.
Order matters. The free script expects latitude first and longitude second in two neighbouring columns. Some exports, including those from the U.S. Census geocoder, put longitude first. Read the source labels before rearranging anything. A value outside the latitude range is an obvious warning, but two swapped values can both be within their permitted ranges and still describe the wrong place.
MapRows accepts either separate columns or one combined column in latitude, longitude order, for example 34.05, -118.25. If you need two columns for the script and the combined value is in A2, put =SPLIT(A2, ",") in an empty cell with room to its right. For 34.05, -118.25, the two outputs are 34.05 and -118.25. Check that the resulting cells are numbers: =ISNUMBER(B2) should return TRUE when B2 holds a numeric latitude.
Before processing the whole list, inspect several rows from different parts of it. Compare their order and signs with the source. If you expect points in one region but find that they land in the ocean or on another continent, investigate a swap or missing minus sign before spending lookups on the rest.
Use the free Apps Script
Our companion reverse geocoding guide contains the complete Apps Script and explains its setup. It uses Apps Script’s Maps Geocoder and writes plain values into the sheet. This is a useful free approach when you are comfortable adding and authorizing code and the Google quota and storage terms fit your project.
- Put latitude and longitude in two neighbouring columns, in that order. Insert five empty columns immediately to their right for Address, City, State, Postal code and Country.
- Open Extensions → Apps Script, paste the script from the companion guide and save it. Reload the spreadsheet so the script can add its menu.
- Select both coordinate columns for the rows you want to process, without the header. Choose Reverse geocode → Selected latitude/longitude to address and authorize the script when prompted.
- Review the values written to the five columns. If the run stops part-way, select the same cells and run it again. Rows that already have an address are skipped.
Leave those five output columns empty before the first run. The script writes into them, so existing information there would be at risk. It marks impossible coordinates INVALID; check the source and correct the pair before retrying. The companion guide also explains how to handle a missing menu and a selection that is not exactly two columns wide.
The companion guide states an Apps Script geocoding quota of about 1,000 lookups a day for a personal account and 10,000 for Google Workspace. Check the quota in your account before relying on it for a deadline. The script also stops itself after five minutes to stay within the execution limit, so a large selection may require another run even when daily quota remains.
Google results have applicable Maps Platform storage restrictions. If you need to keep an address column permanently, check the current terms in your account before choosing this method. For a U.S. county and FIPS code rather than an address, the companion guide has a separate free Census function; it does not need a key.
Batch reverse geocode with MapRows
MapRows is useful when you want to work in a sidebar and resume a large task. Prepare the header row and coordinates first, then decide which result fields you need. You can choose individual fields, so the output can focus on the information you intend to review and use.
- Install MapRows if needed. In the spreadsheet, open Extensions → MapRows → Open MapRows. The first time, Google asks you to allow the requested permissions.
- Open the Reverse tab. Pick the Latitude and Longitude columns, or pick the combined column containing latitude followed by longitude.
- Choose the fields you want and press Reverse geocode. Watch the progress card as the task runs.
- Review the status and result columns alongside the source coordinates. New result headers end in
(reverse), so they do not clash with forward-geocoding columns. - If the task pauses, check the progress card and reset time. Press Resume after the reset to continue from the next unfinished row.
Keep the source coordinates, status and results together when you review the sheet. The (reverse) suffix helps distinguish an address returned from coordinates from fields produced by a forward geocoding task. MapRows does not edit your own columns or formulas. Keep the new result columns and their headers so later runs can reuse them. Forward-geocoding columns use notes that start with MapRows:; reverse results are distinguished by the (reverse) suffix.
You can press Pause whenever you need to stop. If you close the sidebar during a task, progress is kept; reopen it and press Resume. MapRows also pauses when your allowance or its shared daily capacity runs out. The sidebar shows today’s usage and the reset time in your time zone.
Only one unfinished task can exist per spreadsheet. Starting a new task asks before replacing the unfinished one. Read the prompt and check the progress card before starting a different job, especially if another person also works in the spreadsheet.
Estimate the days needed
Each coordinate pair reverse-geocoded by MapRows costs one lookup from the same pool used for forward geocoding. Other actions can use that pool too, so check the sidebar for the allowance still available today. The estimates below assume every listed row needs one lookup and the full daily allowance is available on each day.
| Rows needing a lookup | Free, 100 per day | Pro, 2,500 per day |
|---|---|---|
| 500 | 5 days | 1 day |
| 1,000 | 10 days | 1 day |
| 2,500 | 25 days | 1 day |
| 10,000 | 100 days | 4 days |
For example, 10,000 ÷ 2,500 = 4. A 500-row job fits within one full Pro daily allowance, while Free needs five full daily allowances. These are minimum planning estimates, not promised completion times. Shared capacity can pause a task earlier, and errors or other lookups can add time.
Allowances reset at 00:00 UTC; the sidebar displays that reset in your local time zone. Unused lookups do not roll over. If you used part of today’s allowance on another job, subtract that usage when planning the first day. When resuming a paused task, count the unfinished work rather than treating the entire list as new work.
If the schedule matters, leave time to inspect results and correct source coordinates. Finishing the lookups gives you a set of results to review; it does not establish that every returned address is suitable for the purpose you have in mind.
Choose the right method
Use Google Maps for a few points. Paste a pair such as 34.0522, -118.2437 into the search box and inspect the pin and nearby address or place. Copying results by hand is reasonable for one or two points, but becomes repetitive for a column.
Use the free Apps Script for a column. The companion script writes an address and components as values, skips rows that already have an address on a later run and needs no MapRows subscription. Choose it when you can maintain the script, have suitable quota and have checked the applicable Google storage terms. Leave the five output columns empty and expect to run the selection again if it stops part-way.
Use the free Census function for U.S. counties. The companion guide’s =COUNTY(A2, B2) takes latitude in A2 and longitude in B2, then fills two cells with the county name and FIPS code. For 34.0522 and -118.2437, the guide’s example returns Los Angeles County and 06037. The function needs no key, but it is for U.S. county information, not a general worldwide address lookup. If the leading zero is missing from a FIPS code, check the companion guide’s formatting advice.
Use MapRows for a sidebar and resumable task. Free includes reverse geocoding and all output fields at 100 lookups per day. Pro costs $9 per month or $59 per year, tax included, and allows 2,500 lookups per day subject to fair use and shared capacity. Compare the estimated days with your schedule and see the pricing page for subscription details.
Consider your own Geoapify key for larger volume. This is a Pro feature. Add the key on the Account tab and MapRows limits stop applying; your Geoapify plan’s limits and pricing apply instead. Check those details in your Geoapify account. A key changes the capacity arrangement, not the need to check whether results fit your use.
Review the returned addresses
A reverse lookup finds a nearby known address or place. A point in a parking lot may return a neighbouring building, while a point away from buildings may return a road, town or region. That can be useful when you need a general location, but it may be insufficient when you need to identify a specific entrance or parcel.
Rounded coordinates also limit what a result can tell you. The companion guide notes that coordinates rounded to two decimal places are only accurate to about one kilometre; it recommends four or more decimal places for street-level results. More decimal places do not by themselves prove that the original point was measured accurately, so keep the source context with the row.
MapRows results come from Geoapify using OpenStreetMap data. They can be wrong or incomplete, especially for new buildings and rural addresses. Review the status and returned fields, and check locations that matter against your source. You may keep results stored in your sheet. If you publish them, keep the attribution © OpenStreetMap contributors.
MapRows sends the selected coordinates to Geoapify to obtain results. Its permissions also allow it to read the columns you choose and write results in the open spreadsheet. Review the MapRows documentation for the permissions and data details before processing a list.
Common problems
Latitude and longitude are swapped. Compare the column headers with the original source, particularly for Census exports that can list longitude first. MapRows’ combined format and the companion script both use latitude first. Check ranges, but also inspect the location: a swapped pair can remain numerically valid.
Points appear in the ocean or the wrong country. Look for a swapped pair or a missing minus sign. Compare several affected rows with the source rather than changing every sign at once. Some points may actually be in water, so verify what the coordinates were meant to represent.
A task paused at a quota or capacity limit. For MapRows, read the progress card and reset time. An exhausted allowance or shared capacity can pause the task; progress is kept and you can press Resume after the reset. For the free script, check the error and quota in your account, then select the same coordinate cells and run again when appropriate.
The script returns ZERO_RESULTS. Google may have no address for the point, as can happen far out at sea. Check order, signs and the original coordinate. A valid coordinate is not a guarantee that an address will be returned. The companion guide describes this Google script response; read the status shown by your chosen method rather than assuming every service uses the same wording.
The returned address is nearby but not the expected building. Check the coordinate precision and source. Reverse geocoding can return the nearest known address, not a description of the exact point. Compare the result with the purpose of the list before using it as a building-level identification.
The script menu is missing or rejects the selection. Save the script and reload the spreadsheet to add the menu. Select exactly two neighbouring columns of data, latitude first and longitude second, without the header. Make sure five empty output columns sit immediately to their right.
Frequently asked questions
Can I bulk reverse geocode coordinates in Google Sheets for free?
Yes. The Apps Script in our companion guide can process selected latitude and longitude rows within Google’s applicable quotas. MapRows Free allows 100 lookups per day. For U.S. county names and FIPS codes, the companion guide also provides a free Census custom function.
Does Google Sheets have a reverse geocode formula?
Google Sheets has no built-in reverse geocoding function. The companion guide provides an Apps Script menu for addresses and a custom COUNTY function for U.S. county names and FIPS codes.
Can MapRows reverse geocode a single column of coordinates?
Yes. On the Reverse tab, select a combined column containing latitude followed by longitude, such as 34.05, -118.25. You can also select separate Latitude and Longitude columns.
How many days will 10,000 reverse lookups take in MapRows?
At the full standard allowance, 10,000 lookups require at least 100 days on Free or four days on Pro. Other usage, errors and shared capacity can extend the schedule. Unused daily lookups do not roll over.
What happens if a MapRows task pauses?
Progress is kept when the allowance or shared daily capacity runs out. After the reset, press Resume to continue from the next unfinished row. You can also pause a task yourself, close the sidebar and reopen it later.
Why does the free script return ZERO_RESULTS?
The companion guide identifies ZERO_RESULTS as a Google response when no address is found for the point, such as a location far out at sea. Check the coordinate order, signs and source before deciding whether the result is expected.
Can I get a U.S. county and FIPS code from coordinates?
Yes. The free COUNTY custom function in our companion guide uses the Census Bureau geocoder and needs no key. Enter latitude first and longitude second; it returns the county name and five-digit FIPS code in two cells for a point in a U.S. county.
Related
- Reverse geocode in Google Sheets: coordinates to addresses
- Geocode addresses in Google Sheets
- Geocode a large list of addresses
- Latitude and longitude formula for Google Sheets
- MapRows documentation
- All guides
Disclosure: we make MapRows, the Google Sheets add-on mentioned in this guide. The Apps Script and U.S. Census county function in our companion guide work without the add-on.
Google Sheets, Google Maps and Google Workspace are trademarks of Google LLC. MapRows and Cellbrook are not affiliated with or endorsed by Google.