也許我錯過了你的問題,但我並不真正瞭解哈羅德的答案...... 這是一個代碼,嚴格執行你所要求的,它計算輸入表格中的4個數字的總累計值,在電子表格中顯示它。
我所謂的4個問題「比賽號碼1」,「比賽號碼2」 ......而結果來第2行,所以你可以設置標題。
我刪除了任何非數字字符,因此您可以更自由地鍵入回覆,只保留數字。
form here和SS here(在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:接受使用空迴應的版本的「如果」條件的結果:
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);
}
非常感謝您的幫助!非常感激!這正是我正在尋找的,但仍然不是我真正想要的。你給我的腳本加上了四個比賽的結果,但爲了這樣做,我需要一次插入4個結果。我的意思是,如果每次插入一個結果會更加有用,因爲我必須每週更新一次結果(每個月4場比賽)。 –
隨時用更多的細節來描述,以便我更好地理解:-) –
還有一件事。如果我有13個驅動程序,可以選擇我想在表單中插入的驅動程序結果,或者我需要爲每個驅動程序插入4個表單問題?這就是爲什麼我說如果可以使用表單原因編輯電子表格的內容,如果可能的話,我會在第一週爲driver1,2和3插入race1結果,然後在race2中插入race1結果,但只更新之前的結果一個或添加它們。無法按時編輯第一個答案,對此抱歉。再次謝謝Serge! :D –