如何查询多个工作表并合并数据?

时间:2012-08-08 11:36:49

标签: google-sheets google-sheets-query

对于15个不同的用户,我有15张使用相同模板的工作表。我想对所有工作表进行查询,并在单独的工作表中显示结果:

=QUERY(Mona!A3:U300; "select A, D where C != ''")

其中Mona是15张纸中1张的名称。

所以我需要的是在所有工作表上进行此QUERY并显示结果。列(A,D)应该只出现一次。

我该如何做到这一点?

2 个答案:

答案 0 :(得分:7)

让我建议使用{}收集所有数据:

3张样本公式:

=QUERY({'1'!A1:D13;'2'!A2:D13;'3'!A2:D13},"select Col1, Col2")

此处我们仅在工作表#1中使用标题一次:范围'1'!A1:D13包含标题,范围'2'!A2:D13而其他标题不包含。我们还用Col1,Col2,Col3代替A,B,C表示法......

看看example workbook,可能会有人觉得它很糟糕。

答案 1 :(得分:2)

这不能解决问题的合并部分,但查询所有工作表的有效方法是:

=QUERY(Indirect(A1); "select A, D where C != ''")

其中,单元格A1的文字值为Mona!A3:U300

使用此方法,您可以在单元格中列出不同的工作表名称,并查找每个工作表。

也许可以使用ArrayFormula将查询合并到一个公式中,但我不确定查询对此有多好用 - 使用SumproductFilter使用多个标准查找值可能会更好。