我有两张纸的问题。一张是源电子表格,另一张是目标电子表格。源电子表格有一个源工作表,它是主数据库,而目标电子表格有一个目标,我们希望根据目标电子表格的“电子邮件”选项卡中提供的电子邮件从源工作表中获取数据。
我希望通过脚本而不是 IMPORTRANGE 或 QUERY 发生以下事情:
目标电子表格将有多个副本,因此我想根据源电子表格的 id 将目标电子表格与源电子表格连接起来。
我希望电子邮件匹配不区分大小写,以便目标电子表格的用户在任何情况下都可以键入电子邮件。
电子邮件最多可以达到 50 条,或者假设获取该列的最后一行。
如果脚本在获取数据后显示更新的弹出窗口,那就太好了。
源表可能有多达 15000 行的数据,所以我也在考虑速度。
我已经共享了两个电子表格,其中包含指向其名称的超链接。我不是很擅长脚本,所以如果你可以在任何你喜欢的地方留下评论,那将会很有帮助。我真的很感激你的帮助。
提前致谢!编辑:我在这里更新我损坏的脚本:
function fetch() {
//get the sheets
var source_Ssheet = SpreadsheetApp.openById('19FkL3rsh5sxdujb6x00BUPvXEEhiXfAeURTeQi3YWzo');
var target_Ssheet = SpreadsheetApp.getActiveSpreadsheet();
//get the tabs
var email_sheet = target_Ssheet.getSheetByName("Emails");
var target_sheet = target_Ssheet.getSheetByName("Target Sheet");
var source_sheet = source_Ssheet.getSheetByName("Source Sheet");
//get ranges
var email_list = email_sheet.getRange("B2:B");
var target_sheet_range = target_sheet.getRange("A1:F100");
var source_sheet_range = source_sheet.getRange("A1:F100");
//get last rows
var last_email_name = email_list.getLastRow();
var last_target_sheet_range = target_sheet_range.getLastRow();
var last_source_sheet_range = source_sheet_range.getLastRow();
//start searching for emails
for (var i=3; i < last_email_name.length+1; i++)
{
for(varj=3; j< last_source_sheet_range.length+1; j++ )
{
if(source_sheet_range[j][3].getValue() == email_list[i][3].getValue())
{
//copy matches to target sheet
target_sheet.getRange((last_target_sheet_range + 1),1,1,10).setValues(master_sheet_range[j].getValues());
}
}
}
}