【问题标题】:Google spreadsheets Query Language get data from many other sheetGoogle 电子表格查询语言从许多其他工作表中获取数据
【发布时间】:2012-02-14 11:32:48
【问题描述】:

如何从许多工作表中获取数据?在文档中Reference data from other sheets 是一个例子

=Sheet1!A1

我写了测试查询,它的作品

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

但我想通过一个查询从多个表中获取数据。是否可以?怎么办?

---更新---

例如,我有 2 张表格,分别为 clientsorders,我想获得上个月购买某些产品的用户名。我找到了解决方案,例如我从order table 得到cient_id,然后我从clients 表中得到username

=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)

你可以用一个查询来写吗?

【问题讨论】:

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


    【解决方案1】:

    你需要更具体才能得到一个好的答案,但我会尽量给你我能想到的方向。

    您可以物理连接数据并创建包含所有数据的单个工作表。您不必复制数据也不必引用它(使用=),因为您可以使用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
     ))
    

    您可以在VLOOKUP 中添加UNIQUE 函数以及SORT 中的其他函数。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多