在不使用单独参考工作表名称的硬引用的情况下,将各个标签之间的多行源数据合并到一个摘要标签中

时间:2019-07-19 17:14:17

标签: google-sheets google-sheets-formula array-formulas google-sheets-query

我想创建一个摘要表,该表报告来自多个选项卡的相同数据,并且不依赖于在公式/代码中引用各个表名。当只有一行数据代表每个选项卡时(使用getSheetnames或Index脚本),我已经成功完成了此操作。

但是,我要汇总的数据在每个选项卡中都有多行,需要在汇总表中进行报告。

我已经成功地使用查询/数组组合成功地将来自不同工作表的数据合并并报告到“摘要”中,其中查询范围包括每个工作表并以“;”分隔。也可以使用对Sheetname列表的单元格引用来完成。

但是,这需要更加动态,因为将定期添加/删除工作表,并且我不必每次都添加/删除单个工作表名称时都重写查询。

SUMIF也可以使用,但是有类似的限制。

我相信我的主要挑战是使用我可以生成的工作表名称列表(每行列出一张工作表),并将这些名称的公式/代码关联起来,从而在多行中产生汇总结果。

如果工作表名称在A列中,则以下公式将显示多个选项卡组合的数据

=ArrayFormula(query({INDIRECT(A3&"!A2:A200"),to_text(INDIRECT(A3&"!B2:B200")),INDIRECT(A3&"!C2:C200");INDIRECT(A4&"!A2:A200"),to_text(INDIRECT(A4&"!B2:B200")),INDIRECT(A4&"!C2:C200")},"select Col1,Col2,Col3 where Col1 contains 'Project'"))

但是,我想引用我的工作表名称列表,而不必写实际的工作表名称或对该公式的单元格引用。

这是link到带有示例的虚拟工作簿。

2 个答案:

答案 0 :(得分:0)

={"Project1", "TOTAL", SUM(Project1!C3:C); 
  QUERY(Project1!A3:C, "where A is not null", 0); 
  "Project2", "TOTAL", SUM(Project2!C3:C); 
  QUERY(Project2!A3:C, "where A is not null", 0)}

0

答案 1 :(得分:0)

我知道我在这个问题上迟到了,但是您考虑过Google表单有5个问题:

项目? 相? 交易? 开始? 结束吗?

这样,您的所有数据都将放在一个选项卡中。人们可以使用表格进行输入,而您仍然可以按项目输出项目,以使用简单的查询进行查看/分析。

Google表格的设计完全是与excel有所不同的。有各种诱因来压缩您的数据源,同时使分解分析变得容易。而Excel则恰恰相反。跟踪大量不同标签上的内容并将其汇总到一个地方很容易。但是没有FILTER()或QUERY()这样的东西可以做相反的事情。