使用 IMPORTRANGE 将多个电子表格合并为一个

Combining multiple spreadsheets in one using IMPORTRANGE

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

重复项不应以不同方式处理。我希望它们出现的频率与它们在不同工作表中出现的频率一样。

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

什么不起作用: 我试过使用 IMPORTRANGE 如下:

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

这会导致错误。

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

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

我也在应用上面给定的公式从多个电子表格中获取数据,该电子表格出现错误,例如 IN ARRAY_LITERAL 数组文字缺少一行或多行的值。

当然,也可以将几个IMPORTRANGE()函数与QUERY()函数结合起来,这给了我们一个更大的控制我们导入的结果.

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

=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 * "

###注:

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

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

即使我们引用编写此公式的同一个电子表格,我们也必须这样做,但是对于每个电子表格,它足以完成一次

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

给所有电子表格权限后,我们就可以使用上面的查询了

轻松修复:将过滤器应用于整个列/sheet 而不仅仅是当前选择。这将自动更新所有过滤器以包含新添加的内容。