Google 工作表:如何在通过 Google 表单回复添加的行上复制公式

Google Sheets: how to copy formula down on rows added through Google Form responses

我正在处理 Google 表单结果数据,这些数据被放入 Google Sheet 选项卡中,我添加了一列来计算测验分数的百分比被拉到同一个 sheet 中的跟踪选项卡上,该选项卡计算他们的完成百分比。现在,无论我尝试过哪个公式,百分比列都显示为空白字段。我想知道是否有一个不同的公式可以在添加新响应时自动应用于该列?或者 Google 脚本会是更好的选择吗?

我希望将原始结果数据保持不变 sheet,因为它会将所有测验编译成一个 Google Sheet,并通过一个选项卡拉动百分比来显示完成率。

我已经尝试过 ARRAYFORMULA,如果您将它手动复制到每个条目,则有效的公式是 "=left(C2,find("/",C2)-1)/(right(C2,len(C2) -find("/",C2)))"

尝试

=Arrayformula(if(len(C2:C), left(C2:C,find("/",C2:C)-1)/(right(C2:C,len(C2:C)-find("/",C2:C))),))

看看是否有效?

此函数将在最后一列中添加一个公式,当新的表单响应将添加到 sheet:

function setFormula() {
  var ss=SpreadsheetApp.openById('SHEET_ID');
  var sheet=ss.getSheetByName('SHEET_NAME');
  var lastRow = sheet.getLastRow();
  var formulaRange1 = sheet.getRange(lastRow, sheet.getLastColumn());
  formulaRange1.setValue('=IF($A'+lastRow+'="";"";TODAY()-$Q'+lastRow+')');
}

您的公式必须相应调整。只需确保 lastRow 在字符串内而不是行号内​​,然后添加一个 onFormResponse 触发器。我已将此脚本添加到表单中,而不是 spreadsheet.