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

如何用Apps Script实现输入Val列时自动计算Total列累加值

用Google Apps Script实现Total列自动累加

实现思路

通过Google Sheets的onEdit简单触发器,监听Val列(B列)的编辑操作,实时重新计算Total列(C列)的累加值,无需手动输入公式。

操作步骤

  1. 打开目标Google表格,点击菜单栏「扩展程序」→「Apps Script」
  2. 删除编辑器中的默认代码,替换为下方脚本
  3. 点击保存按钮,给项目命名(比如AutoTotalCalculator)
  4. 返回表格测试:在B列(Val)输入或修改数值,C列(Total)会自动更新累加结果

基础版脚本(适合小数据量)

function onEdit(e) {
  const sheet = e.source.getActiveSheet();
  const editedCell = e.range;
  
  // 仅处理Val列(第2列)的数据行(行号≥2,表头在第1行)
  if (editedCell.getColumn() === 2 && editedCell.getRow() >= 2) {
    const lastRow = sheet.getLastRow();
    let runningTotal = 0;
    
    // 遍历所有数据行,重新计算Total
    for (let row = 2; row <= lastRow; row++) {
      const val = sheet.getRange(row, 2).getValue();
      if (val === "") {
        sheet.getRange(row, 3).clearContent();
      } else {
        runningTotal += val;
        sheet.getRange(row, 3).setValue(runningTotal);
      }
    }
  }
}

优化版脚本(适合大数据量,性能更优)

如果表格数据量较大,推荐用批量读写方式减少API交互次数,提升运行效率:

function onEdit(e) {
  const sheet = e.source.getActiveSheet();
  const editedCell = e.range;
  
  if (editedCell.getColumn() === 2 && editedCell.getRow() >= 2) {
    const lastRow = sheet.getLastRow();
    // 批量读取B列所有数据
    const valRange = sheet.getRange(2, 2, lastRow - 1, 1);
    const values = valRange.getValues();
    
    const totalValues = [];
    let runningTotal = 0;
    
    // 计算所有Total值
    for (const rowVal of values) {
      const val = rowVal[0];
      if (val === "") {
        totalValues.push([""]);
      } else {
        runningTotal += val;
        totalValues.push([runningTotal]);
      }
    }
    
    // 批量写入C列
    const totalRange = sheet.getRange(2, 3, totalValues.length, 1);
    totalRange.setValues(totalValues);
  }
}

补充说明

  • 脚本默认表头在第1行,仅处理第2行及以下的数据行
  • 若某行Val列被清空,对应的Total列也会同步清空,后续行的累加将跳过空值继续计算
  • onEdit是简单触发器,无需额外授权,编辑表格时会自动触发执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 13:07:02