使用动态定义的表格进行Google Spreadsheet查询

蒂亚戈·迪亚兹(Tiago Diaz)

我正在努力应对异常或非正常...

我正在做一个Google电子表格,它将有很多工作表,它们的名称是MM / YYYY日期,例如,我需要从A1:B100范围中获取所有数据,并在主工作表上进行QUERY工作有了这些数据,问题是,我已经用javascript完成了获取该工作表范围的功能,但是我无法在= QUERY()函数上使用它们,尝试了很多,但都采用了与互联网不同的方法,但是没有成功然而..

我的示例电子表格:

https://docs.google.com/spreadsheets/d/1W5W7y16yvOUoqNZCZ59ol8D2nbelJHNqtgaxrtb1jC8/edit?usp=sharing

我也做了应用脚本来动态管理工作表数据:

let sheetsData = () => SpreadsheetApp.getActiveSpreadsheet().getSheets().filter(sheet => sheet.getName().match(/^[\d]/)).map(sheet => sheet.getRange("A1:B20"));
Logger.log( sheetsData() );

我在电子表格上的示例用法是= QUERY(sheetsData();“ SELECT *”),我什至无法列出数据...

任何帮助将是最欢迎的,tnx。

查克斯

Range您需要返回范围内包含的值,而不是返回对象。您还必须确保您返回的数据被构造为二维数组。

function GET_DATA() {
  const dataSheets = SpreadsheetApp.getActiveSpreadsheet()
      .getSheets()
      .filter(s => s.getName().match(/^[\d]/));

  const ranges = dataSheets
      .map(s => s.getRange("A1:B20"));

  return ranges
      .reduce((result, range) => result.concat(range.getValues()), []);
}

上面的实现使用诸如的公式=QUERY(GET_DATA(), "SELECT *")

但是,这种方法存在一个基本问题。由于范围位置是在Apps脚本侧进行硬编码的,并且未指定为公式的一部分,因此,当工作表中的数据发生更改时,不会触发重新计算。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 Google 表格中的查询进行动态列选择

基于列标题的Google Spreadsheet查询计数

Google对查询进行动态的表格预测产生#Value错误

Google SpreadSheet查询:我可以删除列标题吗?

Google SpreadSheet查询:如何查找特定数据

Google SpreadSheet查询-将查询结果合并为一个

使用Google表格查询功能对数据进行分组

如何使用正则表达式URL查询Google Spreadsheet

当所选列中只有空值时,如何使用toDate查询Google Spreadsheet

Google表格查询-动态构建参考数组

Google表格-查询-动态总计低于动态结果

使用重要范围和动态单元格引用的Google表格查询

如何通过其他选项卡数据使用SQL过滤结果查询Google Spreadsheet选项卡

如何使用 Google 表格中的查询功能使用多个 where 条件进行透视

Google表格查询-动态构建引用的数组源

Google表格中的动态日历 - 如何从列表中查询项目

使用动态参数进行 RavenDB 查询

不使用动态脚本进行查询

在Google表格查询中对列进行字符串操作

通过Google表格中的查询对多个文本值进行分组

Google Spreadsheet自定义功能可在电子表格中添加csv

Google Spreadsheet-使用扭曲公式进行合并

在Google Spreadsheet中使用QUERY进行条件格式设置

如何在Google表格中使用查询功能在多个WHERE AND和OR条件下进行数据透视

Google表格->过滤查询

Google表格查询公式

Google表格查询

Google表格IMPORTXML查询

Google表格Arrayformula的查询