gpt4 book ai didi

javascript - 如何对谷歌应用程序脚本中的范围列求和

转载 作者:行者123 更新时间:2023-12-01 01:39:35 25 4
gpt4 key购买 nike

J    
1
2
3

这是代码:

function sumsald () {
   var ss = SpreadsheetApp.getActiveSpreadsheet ();
   var s1 = ss.getSheetByName ("rendPendForm");
   var dataRange = s1.getDataRange ();
   var lastrow = dataRange.getLastRow ();
   var values = s1.getRange (2.10, lastrow, 1) .getValues ();
        var sum = 0;        
        for (var i = 0; i <values.length; i ++) {
            result = values [i] [10] + sum;
            Logger.log (result);
     }
     s1.getRange (i + 1, 10) .setValue (result);
  }

结果脚本 = # NUM!
Logger.log = NaN

预计 6

谢谢,路易斯。

最佳答案

不确定示例中的 J 是否是第一行的列名称或值。无论如何,要获取从 J 列第一行开始一直到索引 lastrow 上的行的值:

var values = s1.getRange (1, 10, lastrow, 1) .getValues ();

此外,在将数字相加时,最好忽略非数字值。例如,如果您将标题行中的字符串与下面行中的数字相加,您将在 Javascript/GoogleScript 中得到这两个字符串的串联字符串,而不是出现错误或忽略该字符串。仅当 values[i][0] 包含数字时,这才会附加到总和(否则将 0 添加到总和中,即不执行任何操作):

result += typeof values[i][0] == 'number' ? values[i][0] : 0;

以下完整示例:

function sumsald () {
var ss = SpreadsheetApp.getActiveSpreadsheet ();
var s1 = ss.getSheetByName ("rendPendForm");
var dataRange = s1.getDataRange ();
var lastrow = dataRange.getLastRow ();
var values = s1.getRange (1, 10, lastrow, 1) .getValues ();
var result = 0;
for (var i = 0; i <values.length; i ++) {
result += typeof values[i][0] == 'number' ? values[i][0] : 0;
Logger.log (result);
}
s1.getRange (i + 1, 10) .setValue (result);
}

关于javascript - 如何对谷歌应用程序脚本中的范围列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52541687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com