概述:Google 表格文件链接到 3 个 Google 表单。提交表单后,响应将添加到对应的虚拟电子表格选项卡中:表单响应 1 表单响应 2 表单响应 4
每次提交表单后,除了表单问题的其他答复外,电子邮件地址也会被跟踪(B 列)。
目标:我的目标是确定受访者的电子邮件地址在所有 3 个表单回复选项卡中是否唯一。
例如,如果电子邮件地址在多个虚拟表选项卡中列出,则首选结果将仅显示一个电子邮件地址。
电子邮件地址在虚拟电子表格的 B 列中被跟踪。验证完成后,将执行后续功能。
当前问题:当前逻辑是识别每个工作表选项卡的唯一电子邮件地址,而不是累积结果(即所有选项卡的组合)。如果电子邮件地址列在多个虚拟工作表选项卡中,则首选结果将仅显示一个电子邮件地址。
如能得到进一步指导,我们将不胜感激。
function findUnique(){
var col = 1 ; // column B (Email Address)
var ss = SpreadsheetApp.getActive();
var allsheets = ss.getSheets();
// Array listing sheets to exclude from execution
var exclude = ["Reference","Index"];
for (var s in allsheets){
var source_sheet = allsheets[s];
// Stop iteration execution; exclude Reference and Index tabs.
if(exclude.indexOf(source_sheet.getName()) != -1) continue;
var data=source_sheet.getDataRange().getValues();// get all data
//Logger.log(data);
var newdata = new Array();
for(nn in data){
var duplicate = false;
for(j in newdata){
if(data[nn][col] == newdata[j][0]){
duplicate = true;
}
}
if(!duplicate){
newdata.push([data[nn][col]]);
}
}
Logger.log(newdata);
newdata.sort(function(x,y){
var xp = Number(x[0]);// ensure you get numbers
var yp = Number(y[0]);
return xp == yp ? 0 : xp < yp ? -1 : 1;// sort on numeric ascending
});
//Logger.log(newdata); // Uniques?
}
}