最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How sum a range column in google app script - Stack Overflow

programmeradmin3浏览0评论
J    
1    
2    
3    

This is the code:

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);
  }

Result script = # NUM!
Logger.log = NaN

6 expected

Thanks, Luis.

J    
1    
2    
3    

This is the code:

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);
  }

Result script = # NUM!
Logger.log = NaN

6 expected

Thanks, Luis.

Share Improve this question edited Sep 27, 2018 at 16:50 TheMaster 51.2k7 gold badges72 silver badges99 bronze badges asked Sep 27, 2018 at 16:46 LuisLuis 351 silver badge8 bronze badges 3
  • values[i][0] – TheMaster Commented Sep 27, 2018 at 16:54
  • [i][10] accesses the 11th column of each row. – tehhowch Commented Sep 27, 2018 at 17:04
  • With values [i] [0] Script result set.Value blank Logger.log 1 0 / 2 0 / 3 0 – Luis Commented Sep 27, 2018 at 17:10
Add a ment  | 

1 Answer 1

Reset to default 6

Not sure if in the example the J is the column name or value on the first row. Anyway, to get values starting from first row in column J all the way to row on index lastrow:

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

In addition, when adding up the numbers its good to ignore non-number values. For example if you sum a string from a header row and a number from row below you get a concatenated string of the two in Javascript/GoogleScript, instead of an error or ignoring the string. This appends to the sum only if values[i][0] contains a number (otherwise adds 0 to the sum i.e. does nothing):

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

Below full example:

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);
}
发布评论

评论列表(0)

  1. 暂无评论