使用importrange将多个电子表格合二为一

时间:2015-07-27 15:43:11

标签: google-sheets

我找到了这个主题的多个主题,但没有人回答我的问题。

问题:我想将多个电子表格的数据汇总到一个电子表格中。

  • 电子表格1有一行字符串A2:A500
  • 电子表格2有一行字符串A2:A500
  • 电子表格3应该有两行(Spreadsheet1!A2:A500和Spreadsheet2!A2:A500)。

不应以不同方式处理重复项。我希望它们能够像出现在不同的表格中一样频繁出现。

问题:是否可以在不编写脚本或使用jQuery的情况下执行此操作?例如使用IMPORTRANGE?

什么行不通:我尝试过如下使用IMPORTRANGE:

ARRAY{IMPORTRANGE("key-of-spreadsheet1","list!A2:A500"), IMPORTRANGE("key-of-spreadsheet2", "list!A2:A500")}

这会导致错误。

感谢您的帮助。

4 个答案:

答案 0 :(得分:9)

您应该可以在电子表格3中使用垂直数组:

={IMPORTRANGE("Sheet1Key","SheetName!A2:A500");IMPORTRANGE("Sheet2Key","SheetName!A2:A500")}

答案 1 :(得分:0)

我还在应用上面给出的公式来从多个电子表格中获取数据,而这又出现了错误,类似于IN ARRAY_LITERAL数组文字缺少一个或多个行的值。

答案 2 :(得分:0)

当然,也可以将几个IMPORTRANGE()函数与QUERY()函数组合在一起,这使我们可以更好地控制导入的结果< / strong>。

例如,我们可以使用这样的构造

=QUERY(
  {
    IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100");
    IMPORTRANGE("key-or-url-of-spreadsheet-2", "'sheet-name-2'!A2:Z100");
    IMPORTRANGE("key-or-url-of-spreadsheet-3", "'sheet-name-3'!A2:Z100");
    IMPORTRANGE("key-or-url-of-spreadsheet-4", "'sheet-name-4'!A2:Z100")
  },
  "SELECT * WHERE Col1 IS NOT NULL ORDER BY Col3 ASC"
)

说明:

上面的查询从导入的范围中删除空白行

SELECT * WHERE Col1 IS NOT NULL

将与第三列有关的所有收集在一起的数据按升序排序

ORDER BY Col3 ASC

要下降,只需使用 DESC 代替 ASC

当然,我们还可以安排其他任何条件,也可以忽略它们,而无需修改即可显示所有内容:

"SELECT * "

注意:

为了使用上面构造的查询,我们首先需要为要引用的每个电子表格调用单个IMPORTIMAGE()方法

=IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100")

即使引用与编写此公式的电子表格相同,我们也必须这样做,但是对于每个电子表格来说,只需一次即可完成

这是为了能够连接这些工作表允许访问到工作表(我们仍然具有访问权限)

enter image description here

授予所有电子表格权限后,我们可以使用上述查询。

答案 3 :(得分:0)

轻松解决:将过滤器应用于整个列/表格,而不只是当前的选择。这将自动更新所有过滤器以包括新的过滤器。