Google sheets 一天内调用的服务次数过多:地理编码数组公式

Google sheets 一天内调用的服务次数过多:地理编码数组公式,google-sheets,localization,geocode,Google Sheets,Localization,Geocode,我希望有人能帮助我,我有这个问题在谷歌表。我有一个列地址(I)、一个列坐标(J)和一个备份坐标列(K) 我正在使用一个脚本创建一个自定义公式,用谷歌本地化服务从地址计算坐标。在坐标列(J)中,我有一个如下的数组公式 =阵列公式(如果(LEN(K2:K)>0,K2:K,地理编码_谷歌(I2:I))) 因此,如果K有一个值,那么我将该值复制到我的列中,否则我使用地理编码自定义公式。我的问题是我遇到了这个错误: 一天内调用的服务次数过多:地理代码。(第5行) 我知道这项服务的使用是有限制的,但我的工作

我希望有人能帮助我,我有这个问题在谷歌表。我有一个列地址(I)、一个列坐标(J)和一个备份坐标列(K)

我正在使用一个脚本创建一个自定义公式,用谷歌本地化服务从地址计算坐标。在坐标列(J)中,我有一个如下的数组公式

=阵列公式(如果(LEN(K2:K)>0,K2:K,地理编码_谷歌(I2:I)))

因此,如果K有一个值,那么我将该值复制到我的列中,否则我使用地理编码自定义公式。我的问题是我遇到了这个错误:

一天内调用的服务次数过多:地理代码。(第5行)

我知道这项服务的使用是有限制的,但我的工作表每天只有大约20或30行新行,所以我想问题可能出在我的arrayformula?中,我的工作表现在有200行,所以每次插入新行时,公式可能执行200次


请提供任何帮助,谢谢

如果有人需要解决方案,我已经找到了。我在数组公式中使用了这个自定义公式,因此在我的工作表中的每一行上,公式都在计算所有行的坐标,因此我必须找到一种方法来验证是否已经计算了一行。我在我的地址栏中添加了一条文字。例如,如果地址是“123 Mapple Street”,现在它会显示“123 Mapple Street..DoNotLocate..”,如果它已经被定位,那么我的脚本将不会对其进行地理定位

以下是我的验证脚本:

function GEOCODE_GOOGLE(address) {
  if (address.map) {
     return address.map(GEOCODE_GOOGLE)
  } else {
    var n = address.search("…DoNotLocate…");
    if (n == -1) {
     var r = Maps.newGeocoder().geocode(address)
     for (var i = 0; i < r.results.length; i++) {
      var res = r.results[i]
      return res.geometry.location.lat + ", " + res.geometry.location.lng
     }
    }
  }
}
功能地理编码\谷歌(地址){
if(address.map){
返回地址.地图(地理编码\谷歌)
}否则{
var n=address.search(“…不定位…”);
如果(n==-1){
var r=Maps.newGeocoder().geocode(地址)
对于(var i=0;i
你能分享你正在处理的电子表格的一份经过消毒的副本吗?很遗憾,我不能分享我的电子表格,因为它来自一个客户。但这很简单。我有3列I,J,K,I列(地址),J列(坐标),K列(备份坐标),我使用地理编码从I列获取坐标,我使用这样的数组公式:=ARRAYFORMULA(如果(LEN(K2:K)>0,K2:K,地理编码_GOOGLE(I2:I)),所以如果我有K列的数据,我不使用地理编码井,你能至少分享一下与自定义公式相关的代码吗?(
GEOCODE\u谷歌
)。这就是问题所在。我感谢你的帮助。我已经找到了解决我问题的办法