= filter({{Sheet1!A1:C500};{Sheet2!A1:C500};{Sheet3!A1:C500}},{{Sheet1!A1:A500};{Sheet2!A1:A500};{Sheet3!A1:A500}}<>"")
我还没有测试过这个。它只是作为一种可能的解决方案突然出现在我的头上。我不会为此使用脚本;工作表的公式要快得多,至少在大多数时候,YMMV。 确保使用分号分隔页面部分,否则它将无法工作。分号是数组文字的End_Of_Row运算符。
如果你真的想用一个脚本...
function combineSheets() {
var sApp = SpreadsheetApp.getActiveSpreadsheet();
var s1= sApp.getSheetByName("Sheet1");
var s2= sApp.getSheetByName("Sheet2");
var s3= sApp.getSheetByName("Sheet3");
var s4= sApp.getSheetByName("Sheet4");
// If Sheet4 doesn't exist you'll need to create it here.
var s1values = s1.getRange(1,1,s1.getLastRow(),3).getValues();
var s2values = s2.getRange(1,1,s2.getLastRow(),3).getValues();
var s3values = s3.getRange(1,1,s3.getLastRow(),3).getValues();
// Now, we can put out all together and stuff it in Sheet4
var s4values = [];
s4values = s1values.concat(s2values,s3values);
s4.getRange(1,1,s4values.length,3).setValues(s4values);
}
例如,我在Google电子表格中有'Sheet1','Sheet2'和'Sheet3'。所有这些表中的数据都有3列 - 姓名和电子邮件地址。现在,我想将这3张/标签中存在的数据合并/组合成第四张,即具有相同列(姓名,电子邮件地址和地区)的“工作表4”。第四张纸应该有数据 - Sheet1的数据,然后Sheet2和Sheet3。所有3张中的行数不断变化。 – aks