Google电子表格查询语言从许多其他工作表中获取数据

时间:2012-02-14 11:32:49

标签: google-docs google-apps google-apps-script

如何从多张纸上获取数据?在文档中Reference data from other sheets是一个示例

=Sheet1!A1

我写了测试查询,它的工作原理

=Query(otherSheet!A1:P999, "select A, B, C")

但我想从多个表中获取一个查询的数据。可能吗?我怎么样?

--- --- UPDATE

例如,我有2张作为clientsorders,我希望获得上个月购买某些产品的用户名。我找到了解决方案,例如我从cient_id获得order table,然后从username

获取clients
=Unique(Query(orders!A1:P999, "select D WHERE I = 'paid' and J > date '2010-01-15' LABEL D 'client_id' "))

=vlookup(A2,contacts!B:C,2,false)

您可以使用单个查询编写它吗?

1 个答案:

答案 0 :(得分:3)

你需要更加具体才能得到一个好的答案,但我会尽力给你一些我能想到的指示。

您可以物理加入数据并创建包含所有数据的单张表格。您既没有复制数据也没有引用它(使用=),因为您可以使用EXPAND函数:

=EXPAND(SORT(Sheet1!A:C))

另一种选择是使用ARRAYFORMULA加入您希望在每张纸上拥有的条件;类似的东西:

=ARRAYFORMULA((SheetX!A2:C3>5)*(SheetY!A2:C3="Category A")*(A2:C3))

---更新---

对于您的更新功能尝试类似:

=ARRAYFORMULA(VLOOKUP(
  (orders!I:I="paid")*(orders!J:J>"2010-01-15")*(orders!D:D),
  contacts!B:C,2
 ))

您可以在UNIQUE内添加VLOOKUP功能,也可以在SORT内添加其他功能。

请注意,您还可以使用单元格中的值(例如,= E2)替换查询的值(例如“2010-01-15”),而不是在函数中使用硬编码值。