Google 表格:使用多个问题编辑表单修复了重复的答案
Google Sheets: Forms edit with multiple questions fix duplicate answers
我有一个表格,其中有一个问题,根据答案会引导您进一步提问。问题是,一旦您提交表单然后返回并编辑您的答案,如果您为第一个问题选择另一个答案并且由于您的第一个答案不同它会重定向到一个新问题,Google 表格中的回复保留两个答案。我怎样才能解决这个问题,让它只显示最后的答案?例如。当我第一次回答问题时,我选择了选项 1。
然后当我选择下一步时,我会得到这些选项。
我提交后会在表格中给出以下响应提交。
好的,那么如果我返回并像这样编辑我的回复......
它将根据我的第一选择重定向到不同的问题。
然而,一旦我提交了我的最终答案,这就是表格中提交的样子。
问题是,根据 B 列中的答案,C 列和 D 列的答案不再相关。我该如何解决这个问题,以便 C 列和 D 列应该是空白的,我只能根据在表单中提交?
谢谢!
您可以创建 bound script in your Google Sheets with a Form Submit trigger。
示例代码:
function formSubmission(e) {
Logger.log(JSON.stringify(e));
Logger.log(e.values);
var data = e.values;
var row = e.range.rowStart;
var sheet = SpreadsheetApp.getActive().getSheetByName('Form Responses 1');
if(data[1]=="Option 1"){
//Remove data under Follow-up Question2 and Amount 2 (Column E and F)
sheet.getRange(row,5,1,2).clearContent();
}else if(data[1]=="Option 2"){
//Remove data under Follow-up Question1 and Amount 1 (Column C and D)
sheet.getRange(row,3,1,2).clearContent();
}
}
先决条件:
它有什么作用?
- 使用 Sheets form submit event object
values
获取表单提交的值
- 获取表单提交目标行使用
range.rowStart
- 获取名称为
Form Responses 1
的活跃价差sheet和sheet
- 检查所选选项并根据所选选项删除特定列。
输出:
这是我最终能够完成我需要 Ron M 帮助的事情的方法:
function formSubmission(e) {
Logger.log(JSON.stringify(e));
Logger.log(e.values);
var data = e.values;
var row = e.range.rowStart;
var sheet = SpreadsheetApp.getActive().getSheetByName('Form Responses 1');
if(data[4]=="Debit"){
sheet.getRange(row,7,1,1).clearContent();
}else if(data[4]=="Credit"){
sheet.getRange(row,6,1,1).clearContent();
}
if(data[7]=="INCOME"){
sheet.getRange(row,10,1,14).clearContent();
}else if(data[7]=="HOME"){
sheet.getRange(row,9,1,1).clearContent();
sheet.getRange(row,11,1,13).clearContent();
}else if(data[7]=="LIVING"){
sheet.getRange(row,9,1,2).clearContent();
sheet.getRange(row,12,1,12).clearContent();
}else if(data[7]=="TRANSPORTATION"){
sheet.getRange(row,9,1,3).clearContent();
sheet.getRange(row,13,1,11).clearContent();
}else if(data[7]=="HEALTH"){
sheet.getRange(row,9,1,4).clearContent();
sheet.getRange(row,14,1,10).clearContent();
}else if(data[7]=="INSURANCE"){
sheet.getRange(row,9,1,5).clearContent();
sheet.getRange(row,15,1,9).clearContent();
}else if(data[7]=="EDUCATION"){
sheet.getRange(row,9,1,6).clearContent();
sheet.getRange(row,16,1,8).clearContent();
}else if(data[7]=="CHARITY/GIFTS"){
sheet.getRange(row,9,1,7).clearContent();
sheet.getRange(row,17,1,7).clearContent();
}else if(data[7]=="SAVINGS"){
sheet.getRange(row,9,1,8).clearContent();
sheet.getRange(row,18,1,6).clearContent();
}else if(data[7]=="OBLIGATIONS"){
sheet.getRange(row,9,1,9).clearContent();
sheet.getRange(row,19,1,5).clearContent();
}else if(data[7]=="ENTERTAINMENT"){
sheet.getRange(row,9,1,10).clearContent();
sheet.getRange(row,20,1,4).clearContent();
}else if(data[7]=="PETS"){
sheet.getRange(row,9,1,11).clearContent();
sheet.getRange(row,21,1,3).clearContent();
}else if(data[7]=="SUBSCRIPTIONS"){
sheet.getRange(row,9,1,12).clearContent();
sheet.getRange(row,22,1,2).clearContent();
}else if(data[7]=="VACATION"){
sheet.getRange(row,9,1,13).clearContent();
sheet.getRange(row,23,1,1).clearContent();
}else if(data[7]=="MISCELLANEOUS"){
sheet.getRange(row,9,1,14).clearContent();
}
}
我有一个表格,其中有一个问题,根据答案会引导您进一步提问。问题是,一旦您提交表单然后返回并编辑您的答案,如果您为第一个问题选择另一个答案并且由于您的第一个答案不同它会重定向到一个新问题,Google 表格中的回复保留两个答案。我怎样才能解决这个问题,让它只显示最后的答案?例如。当我第一次回答问题时,我选择了选项 1。
然后当我选择下一步时,我会得到这些选项。
我提交后会在表格中给出以下响应提交。
谢谢!
您可以创建 bound script in your Google Sheets with a Form Submit trigger。
示例代码:
function formSubmission(e) {
Logger.log(JSON.stringify(e));
Logger.log(e.values);
var data = e.values;
var row = e.range.rowStart;
var sheet = SpreadsheetApp.getActive().getSheetByName('Form Responses 1');
if(data[1]=="Option 1"){
//Remove data under Follow-up Question2 and Amount 2 (Column E and F)
sheet.getRange(row,5,1,2).clearContent();
}else if(data[1]=="Option 2"){
//Remove data under Follow-up Question1 and Amount 1 (Column C and D)
sheet.getRange(row,3,1,2).clearContent();
}
}
先决条件:
它有什么作用?
- 使用 Sheets form submit event object
values
获取表单提交的值
- 获取表单提交目标行使用
range.rowStart
- 获取名称为
Form Responses 1
的活跃价差sheet和sheet
- 检查所选选项并根据所选选项删除特定列。
输出:
这是我最终能够完成我需要 Ron M 帮助的事情的方法:
function formSubmission(e) {
Logger.log(JSON.stringify(e));
Logger.log(e.values);
var data = e.values;
var row = e.range.rowStart;
var sheet = SpreadsheetApp.getActive().getSheetByName('Form Responses 1');
if(data[4]=="Debit"){
sheet.getRange(row,7,1,1).clearContent();
}else if(data[4]=="Credit"){
sheet.getRange(row,6,1,1).clearContent();
}
if(data[7]=="INCOME"){
sheet.getRange(row,10,1,14).clearContent();
}else if(data[7]=="HOME"){
sheet.getRange(row,9,1,1).clearContent();
sheet.getRange(row,11,1,13).clearContent();
}else if(data[7]=="LIVING"){
sheet.getRange(row,9,1,2).clearContent();
sheet.getRange(row,12,1,12).clearContent();
}else if(data[7]=="TRANSPORTATION"){
sheet.getRange(row,9,1,3).clearContent();
sheet.getRange(row,13,1,11).clearContent();
}else if(data[7]=="HEALTH"){
sheet.getRange(row,9,1,4).clearContent();
sheet.getRange(row,14,1,10).clearContent();
}else if(data[7]=="INSURANCE"){
sheet.getRange(row,9,1,5).clearContent();
sheet.getRange(row,15,1,9).clearContent();
}else if(data[7]=="EDUCATION"){
sheet.getRange(row,9,1,6).clearContent();
sheet.getRange(row,16,1,8).clearContent();
}else if(data[7]=="CHARITY/GIFTS"){
sheet.getRange(row,9,1,7).clearContent();
sheet.getRange(row,17,1,7).clearContent();
}else if(data[7]=="SAVINGS"){
sheet.getRange(row,9,1,8).clearContent();
sheet.getRange(row,18,1,6).clearContent();
}else if(data[7]=="OBLIGATIONS"){
sheet.getRange(row,9,1,9).clearContent();
sheet.getRange(row,19,1,5).clearContent();
}else if(data[7]=="ENTERTAINMENT"){
sheet.getRange(row,9,1,10).clearContent();
sheet.getRange(row,20,1,4).clearContent();
}else if(data[7]=="PETS"){
sheet.getRange(row,9,1,11).clearContent();
sheet.getRange(row,21,1,3).clearContent();
}else if(data[7]=="SUBSCRIPTIONS"){
sheet.getRange(row,9,1,12).clearContent();
sheet.getRange(row,22,1,2).clearContent();
}else if(data[7]=="VACATION"){
sheet.getRange(row,9,1,13).clearContent();
sheet.getRange(row,23,1,1).clearContent();
}else if(data[7]=="MISCELLANEOUS"){
sheet.getRange(row,9,1,14).clearContent();
}
}