【问题标题】:Can I add a formula to a google form response using Apps Script?我可以使用 Apps 脚本将公式添加到 Google 表单响应吗?
【发布时间】:2017-01-09 00:44:21
【问题描述】:

抱歉,我是编码初学者。我有兴趣使用 Google Apps 脚本自动分析 Google 表单响应。

我拥有的simple example 是用于询问人们的表单的回复电子表格:

1) 有多少玩家?
2) 他们在哪里完成 [1st, 2nd, etc,]

在提交表单时,我想运行一个脚本来计算他们收到的分数,并将这个值插入下一个可用列(本例中的列 E)。

我尝试编写我的第一个 Apps 脚本来自动化这个过程,但没有成功。

示例代码:

function onFormSubmit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form Responses Master");
var players = e.values[2];
var place = e.values[3];
var positionPoints = e.values[4];
var positionPoints = (players - place + 1);

return positionPoints;
}

我知道可以通过创建重复页面来解决问题,但我希望有人能够就如何在 App Scripts 中编写解决方案提供建议,希望我可以更好地了解编码过程。

【问题讨论】:

    标签: google-apps-script google-sheets google-forms


    【解决方案1】:

    您可以在响应收集器电子表格本身中编写应用脚本,而不是在表单的脚本编辑器中编写代码。

    所以,请转到您的回复表并粘贴此代码。

    function myFunction() 
    {
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses Master");
      var rowNo = sheet.getLastRow();
      var colNo = sheet.getLastColumn();
      sheet.getRange(rowNo, colNo).setValue("=(C"+rowNo+"-D"+rowNo+")+1");
    }
    

    现在,转到资源 -> 当前项目触发器。单击添加新并在下拉列表中设置这些值:myFunction - 从电子表格 - 在表单提交时。

    你就完成了。每当提交新的响应时,都会自动计算位置点。

    这里, 可变工作表获取您可以执行的不同工作表操作的活动电子表格。

    rowNo 和 colNo 如代码所示,只是分别获取写入内容的电子表格的最后一行/列的值。

    并且,要在“E”列中设置公式,您可以使用 setValue。因此,"=(C"+rowNo+"-D"+rowNo+")+1" 将在第二行的情况下转换为 (C2-D2)+1,以此类推用于下一行。

    getRange 仅用于告诉脚本在特定单元格内编写公式。

    【讨论】:

      猜你喜欢
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多