防止在Google表单中多次提交

时间:2018-10-29 03:32:20

标签: google-apps-script google-form

我有一个带有会员ID的Google表单。是否可以通过使用Google Apps脚本阻止相同的会员ID两次提交相同的表单?

1 个答案:

答案 0 :(得分:0)

没有提交前验证机会。唯一的选择是“删除”表单响应电子表格中重复的“ memberID”条目。

此公式(放置在“表单响应”电子表格中空白表格的单元格A1中)将完成此操作。

=ArrayFormula(sort(vlookup(query({row('Form Responses 1'!A:A),sort('Form Responses 1'!A:D)},"select max(Col1) group by Col3 label max(Col1)''",0),{row('Form Responses 1'!A:A),sort('Form Responses 1'!A:D)},{2,3,4,5},0),1,0))

在我的情况下,表单反馈是在工作表= Form Responses 1中收到的。我创建了第二张工作表= uniquesubmissions来放置查询响应的数组公式。我还将uniquesubmissions工作表的A列设置为日期/时间。


注意,共有十个提交,但只有八个唯一提交。会员ID“ S73895”提交了3条信息,但我们只识别其中的最新信息,而忽略其他信息。一种选择是颠倒排序顺序,只接受最早的排序。

Form Responses


Unique Form Responses


说明(解释原始来源)
{row('Form Responses 1'!A:A),sort('Form Responses 1'!A:D)}

  • 创建一个新的(虚拟数组),该列由5列组成:1列包含行号+ 4个原始表列(但已排序,因此“最新”日期将在表的底部)< / li>

query({row('Form Responses 1'!A:A),sort('Form Responses 1'!A:D)},"select max(Col1) group by Col3 label max(Col1)''",0)

查询选择最大行号(col1)(每个名称(按Col3分组))。

  • 这些行号(由查询返回)在相同的“虚拟”数组(请参见上文)中“查找”,并在匹配时返回第2、3、4和5列。

信用 这个公式是根据JPV在Webapps Google Spreadsheet Query for unique and “most recent”

中的回答改编而成的。