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

如何使用Apps Script根据单元格备注累加指定列数值到目标单元格

最终可实现需求的代码
function getPaid () {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var range = sheet.getRange("C4:C14");
  var rangeval = range.getValues();
  var comments = range.getNotes();
  // 初始化求和变量
  var paidSum = 0;

  // 遍历范围内所有行
  for (var i = 0; i < range.getNumRows(); i++) {
    // 备注匹配则累加数值,空值默认按0计算
    if (comments[i][0] === "paid") {
      paidSum += Number(rangeval[i][0] || 0);
    }
  }

  // 将求和结果写入C15
  sheet.getRange('C15').setValue(paidSum);
}
原代码的核心问题
  • 循环条件错误:for (var i = 0; i > range.length; i++)逻辑完全错误,Range对象无length属性,需用range.getNumRows()获取总行数,判断条件应为i < 总行数才能遍历所有单元格
  • 取值格式错误:getNotes()和getValues()均返回二维数组,单列范围下需要用[i][0]才能获取对应行的备注、数值内容
  • 求和逻辑错误:每次匹配到符合条件的单元格就直接覆盖C15的值,没有做累加处理,需先定义变量存储总和,遍历完成后统一赋值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:27:04