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

在Google Sheets中遍历范围实现条件求和的脚本编写求助

Google Sheets 半自动化预算支出追踪器脚本优化

需求说明

你需要在Google Sheets里用forEach循环实现:遍历Statements命名范围的行数据,当某行的Month列值为April且Category列值为Groceries时,累加该行的Amount数值。

修改后的完整脚本

function logAprilGroceries() {
  // 获取命名范围的所有数据
  var range = SpreadsheetApp.getActive().getRangeByName("Statements");
  var values = range.getValues();
  
  // 初始化累加变量,存储符合条件的总金额
  var totalGroceries = 0;

  // 遍历每一行数据(外层forEach处理行)
  values.forEach(function(row) {
    // 列索引从0开始,对应你的四列:Month(0)、Expense(1)、Amount(2)、Category(3)
    var month = row[0];
    var category = row[3];
    var amount = row[2];

    // 条件判断:月份为April且分类为Groceries
    if (month === "April" && category === "Groceries") {
      // 转成数字类型后累加,避免字符串拼接错误
      totalGroceries += Number(amount);
    }
  });

  // 打印结果到脚本日志,方便查看
  console.log("April Groceries Total: $" + totalGroceries.toFixed(2));
  // 如需把结果写入表格单元格,取消下面注释(示例写入A1)
  // SpreadsheetApp.getActiveSheet().getRange("A1").setValue("April Groceries Total: $" + totalGroceries.toFixed(2));
}

关键细节说明

  • 列索引对应:按你给出的列顺序,Month是第0列、Amount是第2列、Category是第3列,别搞混顺序
  • Number(amount):确保金额以数字类型参与计算,避免出现"10"+"20"变成"1020"的错误
  • toFixed(2):把总金额保留两位小数,符合货币显示格式
  • 日志查看:运行脚本后,在脚本编辑器顶部点「查看」→「日志」就能看到累加结果

操作步骤

  1. 确认你的Google Sheets已将目标数据区域命名为Statements(选中区域→右键→定义命名)
  2. 打开脚本编辑器:点「扩展程序」→「Apps Script」
  3. 替换原有代码为上面的脚本
  4. 点击运行按钮,首次运行需按提示完成权限授权

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:25:06