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

Google Sheets如何跨表求和Duration格式的I3单元格时长

Google Sheets 跨工作表Duration格式时长求和方案

之前公开脚本计算错误的核心原因是误读取了Duration单元格的显示文本做字符串解析,没有读取单元格底层存储的原始值。Google Sheets 中Duration格式本质是以天为单位的浮点数值:1小时对应1/24,1分钟对应1/(24*60),直接对原始数值求和即可得到正确结果,不需要做时间格式的字符串拆分转换。


方案1:原生公式实现(优先推荐,无需写代码)

不需要部署脚本,直接在「总计」工作表的目标求和单元格输入以下公式,输入完成后将该单元格格式设置为Duration即可:

=SUM(ARRAYFORMULA(IFERROR(INDIRECT("'"&FILTER(SHEETNAMES(),SHEETNAMES()<>"总计")&"'!I3"),0)))

公式逻辑说明:

  • SHEETNAMES() 拉取当前表格所有工作表的名称
  • FILTER() 过滤掉名为「总计」的汇总工作表本身,避免循环引用
  • INDIRECT() 逐个匹配引用每本书对应工作表的I3单元格值
  • IFERROR() 跳过空工作表/无值单元格的报错
  • SUM() 直接对所有Duration原始值求和

如果你的表格版本暂不支持SHEETNAMES()函数,可以使用下面的脚本方案。


方案2:Apps Script 自定义脚本实现(全版本兼容)

操作步骤:

  • 打开表格,点击顶部菜单栏「扩展程序」→「Apps Script」,打开脚本编辑器
  • 清空编辑器内默认的示例代码,粘贴以下代码:
function SUM_ALL_READ_DURATION() {
  const currentFile = SpreadsheetApp.getActiveSpreadsheet();
  const allSheets = currentFile.getSheets();
  let totalDuration = 0;

  // 遍历所有工作表,排除汇总表
  for (const sheet of allSheets) {
    const sheetName = sheet.getName();
    if (sheetName === "总计") continue;
    // 读取I3单元格的原始数值,禁止读取getDisplayValue()返回的显示文本
    const cellValue = sheet.getRange("I3").getValue();
    // 仅累加有效数值,跳过空值、文本值
    if (typeof cellValue === 'number' && !isNaN(cellValue)) {
      totalDuration += cellValue;
    }
  }

  // 写入结果到总计表,可自行修改目标单元格位置,示例为B2
  const summarySheet = currentFile.getSheetByName("总计");
  const targetCell = summarySheet.getRange("B2");
  targetCell.setValue(totalDuration);
  // 设置单元格格式为支持超过24小时的Duration格式,避免时长溢出清零
  targetCell.setNumberFormat('[h]:mm:ss');
}
  • 点击脚本编辑器顶部的保存按钮,第一次运行时按照弹窗提示完成谷歌账号授权即可
  • (可选配置自动更新)点击脚本编辑器左侧边栏的「触发器」选项,新增触发器:选择SUM_ALL_READ_DURATION函数,触发条件设置为「编辑时」,后续任意书籍工作表的时长更新后,总时长会自动同步计算。

注意事项

  • 存放求和结果的单元格必须设置为Duration格式,如果总时长超过24小时,请选择格式代码为[h]:mm:ss的选项,避免时长被模24清零
  • 如果你的汇总工作表名称不是「总计」,请将公式、代码中对应的工作表名称替换为你实际使用的名称
  • 所有计算逻辑必须基于单元格的原始数值,不要对显示出来的1:20:59格式字符串做拆分计算,否则会因为格式变动、时长超过24小时等场景出现计算错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:15:34