Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 如何使用应用程序脚本逐行求和?_Google Sheets_Google Spreadsheet Api - Fatal编程技术网

Google sheets 如何使用应用程序脚本逐行求和?

Google sheets 如何使用应用程序脚本逐行求和?,google-sheets,google-spreadsheet-api,Google Sheets,Google Spreadsheet Api,我试图逐行求和,并在各行的总计单元格中求值。 我尝试在应用程序脚本中循环。但是不能。有人能帮我吗 我有b3:f16的数据,我需要h3:h16的总计 1906 904 106 221 1640 1771 842 97 188 1338 3221 1005 252 260 6323 3239 1141 317 287 7828 3556 1409 352 337 8890 3417 1307 303 382 7143 32

我试图逐行求和,并在各行的总计单元格中求值。 我尝试在应用程序脚本中循环。但是不能。有人能帮我吗

我有b3:f16的数据,我需要h3:h16的总计

1906    904     106 221 1640
1771    842      97 188 1338
3221    1005    252 260 6323
3239    1141    317 287 7828
3556    1409    352 337 8890
3417    1307    303 382 7143
3264    1824    358 444 9288
2724    1916    196 395 3462
2641    1829    151 430 3255
4076    1858    398 471 12844
3986    2098    468 426 13411
4829    2504    422 514 14449
4462    4876    452 507 13285
5017    6654    423 410 7765 
代码:

函数加法器(){
var sheet=SpreadsheetApp.getActiveSheet().getSheetByName(“sheet1”);
var数据=sheet.getRange(“B3:F16”).getValues();
var范围=sheet.getRange(“H3:H16”);
对于(变量i=0;i
这可以用MMULT完成

在G3中,尝试:

=ArrayFormula(mmult(B3:F16, transpose(column(B3:F3)^0)))
如果要使用脚本,请查看此操作是否有效:

function adder() {
var sheet = SpreadsheetApp.getActive()
    .getSheetByName("sheet1"),
    res = [];
    sheet.getRange("B3:F16")
        .getValues()
        .forEach(function (r) {
            res.push([r.reduce(function (a, b) {
                return a + b;
            })])
        });
sheet.getRange("H3:H16")
    .setValues(res);
}
或使用“经典”for循环:

function adder2() {
var sheet = SpreadsheetApp.getActive()
    .getSheetByName("Test"),
    res = [],
    sum,
    data = sheet.getRange("B3:F16")
        .getValues();
for (var i = 0, rlen = data.length; i < rlen; i++) {
    sum = 0;
    for (var j = 0, clen = data[0].length; j < clen; j++) {
        sum += Number(data[i][j])
    }
    res.push([sum])
}
sheet.getRange("H3:H16")
    .setValues(res);
}
函数adder2(){
var sheet=SpreadsheetApp.getActive()
.getSheetByName(“测试”),
res=[],
总和
数据=sheet.getRange(“B3:F16”)
.getValues();
for(var i=0,rlen=data.length;i
什么不适合你?谢谢你的帮助@克:非常欢迎。如果这对你有效,请接受答案()或投票。
function adder2() {
var sheet = SpreadsheetApp.getActive()
    .getSheetByName("Test"),
    res = [],
    sum,
    data = sheet.getRange("B3:F16")
        .getValues();
for (var i = 0, rlen = data.length; i < rlen; i++) {
    sum = 0;
    for (var j = 0, clen = data[0].length; j < clen; j++) {
        sum += Number(data[i][j])
    }
    res.push([sum])
}
sheet.getRange("H3:H16")
    .setValues(res);
}