google sheet 中多个选项卡的动态数据范围使用 QUERY 函数
dynamic data range from multiple tabs in a google sheet using QUERY function
我正在尝试创建一个自定义函数,以便我可以动态 return 电子表格中的所有选项卡以在 QUERY
函数中使用。
这样以后如果我添加一个新的数据标签,我就不需要手动更新函数了。
function myFunction() {
var out = new Array();
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var i=0 ; i<sheets.length ; i++) {
var name = sheets[i].getName();
if (i !== sheets.length - 1) {
out.push("'"+sheets[i].getName()+ "'!$A:$F; " );
} else {
out.push("'"+sheets[i].getName()+ "'!$A:$F " );
}
}
return out;
}
我将如何使用自定义函数的示例
=query(myFunction(),"select * where Col4 = 'Partner' order by Col1 desc",0)
function getMyDataRanges() {
var out=[];
var sheets=SpreadsheetApp.getActive().getSheets();
for(var i=0;i<sheets.length;i++) {
var sh=sheets[i];
var name=sh.getName();
out.push("'" + name + "'!$A:$F");
}
return '{' + out.join(';') + '}';
}
我用这样的东西加载了单元格;
function loadFormula(sheetName,A1Range) {
var ss=SpreadsheetApp().getActive();
var sh=ss.getSheetByName(sheetName);
var formula=Utilities.formatString('=QUERY(%s,"select * where Col4 = \'Partner\' order by Col1 desc")',getMyDataRanges());
sh.getRange(A1Range).setFormula(formula);
}
我正在尝试创建一个自定义函数,以便我可以动态 return 电子表格中的所有选项卡以在 QUERY
函数中使用。
这样以后如果我添加一个新的数据标签,我就不需要手动更新函数了。
function myFunction() {
var out = new Array();
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var i=0 ; i<sheets.length ; i++) {
var name = sheets[i].getName();
if (i !== sheets.length - 1) {
out.push("'"+sheets[i].getName()+ "'!$A:$F; " );
} else {
out.push("'"+sheets[i].getName()+ "'!$A:$F " );
}
}
return out;
}
我将如何使用自定义函数的示例
=query(myFunction(),"select * where Col4 = 'Partner' order by Col1 desc",0)
function getMyDataRanges() {
var out=[];
var sheets=SpreadsheetApp.getActive().getSheets();
for(var i=0;i<sheets.length;i++) {
var sh=sheets[i];
var name=sh.getName();
out.push("'" + name + "'!$A:$F");
}
return '{' + out.join(';') + '}';
}
我用这样的东西加载了单元格;
function loadFormula(sheetName,A1Range) {
var ss=SpreadsheetApp().getActive();
var sh=ss.getSheetByName(sheetName);
var formula=Utilities.formatString('=QUERY(%s,"select * where Col4 = \'Partner\' order by Col1 desc")',getMyDataRanges());
sh.getRange(A1Range).setFormula(formula);
}