javascript - Simple Google Script not working -
i have decided use google scripts when can when using spreadsheets, start increasing knowledge. untrained , got stuck quite quickly.
i saw code on youtube different script thought extracted needed , work...
function y_add_up_function() { var ss = spreadsheetapp.getactivespreadsheet(); var sheet = ss.getsheets()[0]; var range = sheet.getrange["i2:j15"]; var data = range.getvalues(); var sum = 0; (var = 0; < 14; ++i) { var row = data[i]; if(row[1] == "y") { sum = sum + row[0]; } } return sum; }
there spreadsheet can see trying ss add have ticked y next price getting error reads:
typeerror: cannot call method "getvalues" of undefined. (line 5)
please teach me doing wrong ^_^!!!
cheers!
the error means trying call method on undefined object. if @ code, have range.getvalues(). means range undefined. therefore need @ assignment of range: var range = sheet.getrange["i2:j15"]. , here problem, getrange method , need called parenthesis, getrange("i2:j15").
here working code:
function y_add_up_function() { var ss = spreadsheetapp.getactivespreadsheet(); var sheet = ss.getsheets()[0]; var range = sheet.getrange("i2:j15"); // <-- fix here var data = range.getvalues(); var sum = 0; (var = 0; < 14; ++i) { var row = data[i]; if(row[1] == "y") { sum = sum + parsefloat(row[0].substring(2)); // <-- fix floats "£ <number>" } } return sum; }
also note since have pound signs in cost column, need strip signs number. here have used .substring(2), not fail safe. if e.g. forget put "£ " in cell number read incorrectly. recommend putting pound sign in column header or use more sophisticated method remove when parsing numbers.
you can example use row[0].replace(/^[0-9.]/g, ''). replace characters not digits nor decimal points. has no error-checking, think enough in personal spreadsheet.
Comments
Post a Comment