我如何在谷歌脚本中找到最大值,这些值是从现在存储在表单中的表单中提交的值的总和



我有一个谷歌表格,里面有24个问题。我需要得到某些问题的总和,然后找到最大值,但使用max((不起作用。如何计算在我正在编写的脚本中定义的一组变量的最大值。

当根据提交的分数的最高值将文本插入文档时,需要找到最大值。

function onFormSubmit(e) { // add an onsubmit trigger
// Gather data from submitted values in the form
var date_stamp = e.values[0];
var email_address = e.values[1];
var full_name = e.values[2];
var q1 = e.values[3];
var q2 = e.values[4];
var q3 = e.values[5];
var q4 = e.values[6];
var q4 = e.values[7];
var q5 = e.values[8];
var q6 = e.values[9];
var q7 = e.values[10];
var q8 = e.values[11];
var q9 = e.values[12];
var q10 = e.values[13];
var q11 = e.values[14];
var q12 = e.values[15];
var q13 = e.values[16];
var q14 = e.values[17];
var q15 = e.values[18];
var q16 = e.values[19];
var q17 = e.values[20];
var q18 = e.values[21];
var q19 = e.values[22];
var q20 = e.values[23];
var q21 = e.values[24];
var q22 = e.values[25];
var q23 = e.values[26];
var q24 = e.values[27];
// Add the scores for the categories and areas  
var scoreInputs = q1+q4+q7+q10+q13+q16+q19+q22;
var scoreProcessing = q2+q5+q8+q11+q14+q17+q23;
var scoreOutputs = q3+q6+q9+q12+q15+q18+q21+q24;
var largestScore = max(scoreInputs, scoreProcessing, scoreOutputs);
if (largestScore == scoreInputs) {
// paragraph for Input as highest score
var knowledgePara = "input positive text"; 
} else if (largestScore == scoreProcessing) {
// paragraph for Processing as highest score
var knowledgePara = "processing positive text"; 
} else if (largestScore == scoreOutputs) {
// paragraph for Outputs as highest score
var knowledgePara = "outputs positive text"; 
};

您需要使用Math.max()

var largestScore = Math.max(scoreInputs, scoreProcessing, scoreOutputs);

请记住,当前的逻辑可能无法正确处理由多个值持有最大分数的情况。

您很可能认为电子表格函数可以在Apps Script上使用。

  • 不幸的是,这个假设是错误的
  • 幸运的是,我们可以使用内置JavaScript对象Math的方法,在本例中为Math.max((

最新更新