对多个 Google 工作表中的单个单元格求和的 JS 公式疑难解答

Troubleshooting JS formula for summing a single cell across multiple Google Sheets

我正在尝试对多个 Google 工作表中的单个单元格求和。我已经使用这个脚本几个星期了,最近它停止工作了。工作表要么无法识别公式名称,要么在识别时在加载过程中超时:

function sumCells(cell) {
var val = [];
SpreadsheetApp.getActive().getSheets().forEach(function (s) {
          val.push(Number(s.getRange(cell).getValue()))
    });
return val.reduce(function (accumulator, value) {
    return accumulator + value;
    });
}

我知道这不是单个单元格的问题,因为我已经尝试从每个 sheet 中提取数字并将它们相加在同一个 sheet 中并且没有错误。

有没有人对如何修复代码或除此脚本之外的其他解决方案有任何建议?我们使用的 sheet 的数量在不断变化,因此使用 SUM(Sheet1!B5+Sheet2!B5...SheetN!B5) 不是一个选项。

您能否检查脚本的执行日志,以便我们了解确切的错误是什么?

编辑:

  • 看来您的问题源于执行时间的限制。每个脚本的执行时间不要超过6分钟,否则会缩短并失败。
  • Apps 脚本在处​​理大数据时应该没有问题,但拖慢脚本速度的是 API 调用。
  • 我从这个 add-on 中找到了一个公式,如果可以的话,它可能会解决您的问题:
    • UTIL_UTIL_VALUESHEETS(A1notation)
    • Usage

参考: