aks*_*aks 6 google-sheets google-apps-script
如何使用Google App Script合并Google电子表格中的多个标签?所有标签中的数据都在不断变化.
例如,我在Google电子表格中有'Sheet1','Sheet2'和'Sheet3'.所有这些表格中的数据都有3列 - 姓名和电子邮件ID和地区.现在,我想将这3张/标签中的数据合并/组合成第4张,即"Sheet 4"具有相同的列(名称,电子邮件ID和区域).第四张表应该有数据 - Sheet1的数据,然后是Sheet2,然后是Sheet3.所有3张纸中的行数不断变化.
= filter({{Sheet1!A1:C500};{Sheet2!A1:C500};{Sheet3!A1:C500}},{{Sheet1!A1:A500};{Sheet2!A1:A500};{Sheet3!A1:A500}}<>"")
Run Code Online (Sandbox Code Playgroud)
我没有测试过这个.它只是作为一种可能的解决方案突然出现在我脑海中.我不会为此使用脚本; 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);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您不需要为此编写脚本。在第四张表的 A2 中输入以下公式:
={filter(Sheet1!A2:C, len(Sheet1!A2:A)); filter(Sheet2!A2:C, len(Sheet2!A2:A)); filter(Sheet3!A2:C, len(Sheet3!A2:A))}
Run Code Online (Sandbox Code Playgroud)
它返回 A 列中的条目非空的 AC 列的内容,并将它们堆叠在一个数组中。
归档时间: |
|
查看次数: |
13694 次 |
最近记录: |