あなたの質問で何かを見逃したかもしれませんが、ハロルドの答えがよくわかりません...これは、あなたが求めたことを厳密に行うコードです。フォームに入力された4つの数値の合計累積値をカウントし、スプレッドシートに表示します.
4 つの質問を「レース番号 1」、「レース番号 2」と呼びました。結果は 2 行目に表示されるので、ヘッダーを設定できます。
回答をより自由に入力できるように、数字以外の文字を取り除きました。数字のみが保持されます。
フォームはこちら、SS はこちら (シート 1 の生の結果とシート 2 のカウント)
スクリプトはスプレッドシートに入り、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);
}
編集:回答数を簡単に変更できるようにコードを変更しました...範囲は自動的に更新されます。
EDIT 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);
}