加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

表单 – 使用表单更新Google电子表格上的现有数据?

发布时间:2020-12-14 21:17:50 所属栏目:资源 来源:网络整理
导读:我想建立一种自动系统,以更新一些比赛结果的冠军.我有一个自动电子表格,所有结果都显示但是我需要花费很多时间来更新所有结果,所以我想知道是否可以制作表格以便更容易地更新它们. 在表格中,我将输入他在比赛中赢得的车手名称和数量.冠军每个月有4场比赛,所
我想建立一种自动系统,以更新一些比赛结果的冠军.我有一个自动电子表格,所有结果都显示但是我需要花费很多时间来更新所有结果,所以我想知道是否可以制作表格以便更容易地更新它们.

在表格中,我将输入他在比赛中赢得的车手名称和数量.冠军每个月有4场比赛,所以是的,我的问题是你们是否知道使用表格更新现有数据(存储在电子表格中)的方法.让我们说在第一场比赛中,车手’X’赢得了10分.我将在表单中插入此数据,然后从电子表格中调用它以显示它,这是正确的.当我想要更新第二场比赛结果等问题时.如果驾驶员’X’在第二场比赛中获得12分,是否有办法更新该驾驶员之前的10分并改为22分?或者我可以自动将第二场比赛结果添加到第一场比赛结果吗?我的意思是,如果我在表单上插入第二个比赛结果,它可以查找驱动程序’X’条目并将此点添加到它以前的那些. Dunno,如果有可能的话.

也许我可以用另一种方式做到这一点.任何帮助都感激不尽!
谢谢.

解决方法

也许我在你的问题中遗漏了一些东西,但我真的不明白哈罗德的回答……
这是一个严格按照您的要求执行的代码,它计算在表单中输入的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,responses.length).getValues();
  for(var n in responses){
    totals[0][n]+=responses[n];
  }
  sh.getRange(2,responses.length).setValues(totals);
}

编辑:我更改了代码,以便您轻松更改响应数量…范围将自动更新.

编辑2:在结果上使用“if”条件接受空响应的版本:

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,responses.length).setValues(totals);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读