You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中计算两城市距离?GOOGLEMAPS_DISTANCE公式报错

解决Google Sheets中GOOGLEMAPS_DISTANCE的#ERROR!问题

核心问题

GOOGLEMAPS_DISTANCE 不是Google Sheets的内置函数,它是依赖Google Apps Script实现的自定义函数,直接调用会触发报错。另外你单元格里的@符号也可能干扰地址解析逻辑。

正确实现步骤

1. 部署自定义函数

Google Sheets本身没有内置的地图距离计算函数,必须先通过Apps Script添加这个自定义函数:

  • 打开你的表格,点击顶部菜单栏的 扩展程序 > Apps脚本
  • 清空编辑器里的默认代码,粘贴以下脚本:
function GOOGLEMAPS_DISTANCE(origin, destination, mode) {
  const dirFinder = Maps.newDirectionFinder();
  dirFinder.setOrigin(origin.replace(/@/g, '')); // 自动移除地址中的@符号
  dirFinder.setDestination(destination.replace(/@/g, ''));
  dirFinder.setMode(mode || 'driving');
  
  const directions = dirFinder.getDirections();
  if (!directions.routes.length) return "无法找到有效路线";
  
  return directions.routes[0].legs[0].distance.text;
}
  • 点击编辑器顶部的保存按钮,给项目起个名字(比如“MapDistanceTools”)
  • 首次运行会弹出权限请求,按照提示完成授权(需要允许脚本访问Google Maps服务)

2. 重新调用公式

在任意单元格输入:
=GOOGLEMAPS_DISTANCE(A1, B1, "driving")
即可得到两地的驾车距离(格式类似“1,430 km”)

常见报错排查

  • 未部署脚本:直接调用函数必然报错,先完成上面的脚本部署步骤
  • 授权失败:如果脚本没获得Maps访问权限,重新进入Apps Script,手动运行一次函数触发授权流程
  • 地址解析失败:确保单元格里的地址是可识别的地名,若有其他特殊符号需手动清理
  • API配额限制:Google Maps API有免费调用额度,超出后会返回错误,需检查配额或升级方案

内容的提问来源于stack exchange,提问作者Gabe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 05:05:04