也许我在你的问题中遗漏了一些东西,但我不太明白哈罗德的回答......这是一个严格按照你要求的代码,它计算表格中输入的 4 个数字的总累积值并将其显示在电子表格上.
我将这 4 个问题称为“第 1 场比赛”、“第 2 场比赛”……结果出现在第 2 行,因此您可以设置标题。
我删除了所有非数字字符,以便您可以更自由地输入响应,只保留数字。
在这里形成,在这里形成 SS (原始结果在 sheet1 中,在 Sheet2 中计数)
脚本进入电子表格并由 onFormSubmit 触发器触发。
function onFormSubmit(e) {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet2');
var responses = []
responses[0] = Number(e.namedValues['race number 1'].toString().replace(/\D/g,''));
responses[1] = Number(e.namedValues['race number 2'].toString().replace(/\D/g,''));
responses[2] = Number(e.namedValues['race number 3'].toString().replace(/\D/g,''));
responses[3] = Number(e.namedValues['race number 4'].toString().replace(/\D/g,''));
var totals = sh.getRange(2,1,1,responses.length).getValues();
for(var n in responses){
totals[0][n]+=responses[n];
}
sh.getRange(2,1,1,responses.length).setValues(totals);
}
编辑:我更改了代码以允许您轻松更改响应数...范围将自动更新。
编辑 2:接受空响应的版本在结果上使用“if”条件:
function onFormSubmit(e) {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet2');
var responses = []
responses[0] = Number((e.namedValues['race number 1']==null ? 0 :e.namedValues['race number 1']).toString().replace(/\D/g,''));
responses[1] = Number((e.namedValues['race number 2']==null ? 0 :e.namedValues['race number 2']).toString().replace(/\D/g,''));
responses[2] = Number((e.namedValues['race number 3']==null ? 0 :e.namedValues['race number 3']).toString().replace(/\D/g,''));
responses[3] = Number((e.namedValues['race number 4']==null ? 0 :e.namedValues['race number 4']).toString().replace(/\D/g,''));
var totals = sh.getRange(2,1,1,responses.length).getValues();
for(var n in responses){
totals[0][n]+=responses[n];
}
sh.getRange(2,1,1,responses.length).setValues(totals);
}