google-apps-script - 如何使用 Google Apps 脚本对长度不同的列求和?
问题描述
我正在尝试使用 Google Apps scipt 在该列的最底部添加一个列的总和公式。行数会有所不同,但起始单元格将保持不变。
我想使用公式而不是插入静态总和,以便用户无需运行任何脚本即可查看最新总和。
constantslr+savingslr+needslr+wantslr
= the number of rows to be summed
。它们是前面定义的。
我试过这个没有运气。
var sss = SpreadsheetApp.getActiveSpreadsheet();
var ss = sss.getSheetByName('Set Up Data');
ss.getRange(6+constantslr+savingslr+needslr+wantslr,4,1,1).setFormulaR1C1('
=SUM(-['constantslr+savingslr+needslr+wantslr']C[0]:R[-1]C[0])');
解决方案
这不是一个应用程序脚本公式,但如果您将要汇总的区域设置为名称范围,并使用:
=SUM(YourRangeName)
它将总结整个范围。
只要在第一行和最后一行之间插入行,命名范围就会包含所有行。
示例:第 2 - 17 行是命名范围 SumThing
在中间插入 5 行: 当您插入行时,命名范围会扩展。您可以在数据底部和包含求和公式的行之间留下一个空白行,然后在空白行上方插入行以实现相同的目的。
在 App 脚本中也很有用
我一直在我的应用程序脚本中使用命名范围,这样我就不必担心有人在工作表中添加行或列并破坏脚本范围。在应用程序脚本中执行此操作:
function useNamedRange(){
var ss = SpreadsheetApp.getActive();
// Named ranges belong to the spreadsheet, not an individual sheet
var range = ss.getRangeByName("SumThing");
// do something with the named range
}
推荐阅读
- ios - 推送通知不会出现在设备上
- c++ - 如何使用 QFileDialog 保存多个图像并提升
- php - 如何取消设置数组的值?
- c++ - 媒体基础视频重新编码产生音频流同步偏移
- reactjs - 当用户在 Animated React / React Native 中按住时如何缩放按钮的大小?
- r - 如何绘制 geom_col() 以使 y 轴以 1 而不是 0 为中心
- c++ - 我不知道如何用变量写平均成绩
- graph - 按日期获取连接到单个帐户节点的许多交易节点中的最新节点的有效方法
- rest - Powershell 发布 API 请求
- c# - 在没有核心的 2019 年创建编译查询的正确方法