Google sheets 如何使用应用程序脚本逐行求和?
我试图逐行求和,并在各行的总计单元格中求值。 我尝试在应用程序脚本中循环。但是不能。有人能帮我吗 我有b3:f16的数据,我需要h3:h16的总计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
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);
}