【问题标题】:Combining multiple spreadsheets in one using IMPORTRANGE使用 IMPORTRANGE 将多个电子表格合并为一个
【发布时间】:2015-07-27 15:43:11
【问题描述】:

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

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

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

是否可以在不编写脚本或使用 jQuery 的情况下做到这一点,例如通过使用 IMPORTRANGE?

什么不起作用:我尝试使用 IMPORTRANGE,如下所示:

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

这会导致错误。

【问题讨论】:

  • 不确定我是否理解这个问题。我基本上想复制整张纸!所以来自“A2:H1000”的引用。

标签: google-sheets google-sheets-formula array-formulas importrange


【解决方案1】:

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

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

【讨论】:

  • @Chris Hick 这也是我的第一个猜测。但它不是那样工作的。显然电子表格需要不同的范围...
  • 我有一个示例工作表,它将 3 个导入范围合并到一个工作表中goo.gl/bEZgO9 创建垂直数组的公式在单元格 A1 中,还包括用于删除空白行的过滤器公式。你能调整这个公式来处理你自己的工作表吗?
  • 该;在 { } 数组中标记下一个数据集的开始位置,以便您可以按照自己喜欢的顺序放置它们。但是,一旦导入正常工作,您可以将整个 { } 数组视为其他公式的数据集,例如 SORT({ },1,1,2,0) 或 QUERY({ },"order by Col1,Col2 desc") ,所以你可以更精确地安排它
  • 它是“;”那成功了。并感谢您将其用作全新数据集的提示。这解决了我的问题!
  • 这对我不起作用。它只打印一个值
【解决方案2】:

当然,也可以将多个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")

即使我们参考编写此公式的同一个电子表格,我们也必须这样做,但是对于每个电子表格,只需执行一次就足够了

这是为了能够连接这些工作表允许访问工作表(无论如何我们都拥有访问权限)

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

【讨论】:

  • 这应该被接受为正确答案。效果很好。
  • 电子表格的“关键”是什么?如果您在同一个电子表格中使用工作表,为什么需要它?
  • 嗨@AgentZebra!由于 IMPORTRANGE 方法规范,我们必须使用电子表格的 URL 或其键。您可以从 URL 中提取密钥:它是 /d/ 和下一个 / 之间的哈希值。例如,这样的 URL:https://docs.google.com/spreadsheets/d/11VE20qQ5xnu8uuQGJjCE0cn--_3G3Qd3RkOIIySNTEw/edit#gid=0 具有这样的键:11VE20qQ5xnu8uuQGJjCE0cn--_3G3Qd3RkOIIySNTEw
  • 似乎也可以简单地使用电子表格的 URL 作为键,如果您使用许多电子表格,这会容易得多
【解决方案3】:

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

【讨论】:

  • 如果您有问题,请不要为已经死了 3 年的问题写答案。提出一个新问题,详细说明您的情况并参考此问题。
  • 虽然这应该是另一个问题,但在使用实际答案时,您可能会遇到这个问题。原因是两个导入范围的列数不同。您可能很想将第一个范围导入为 1:1 以获取标题。问题是,如果第二个范围描述 A:Y 但工作表有 A:Z 列,则它将与 1:1 导入不匹配,因为 1:1 导入将拉入 A:Z。跟我来?不确定我是否... ;)
【解决方案4】:

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

【讨论】:

  • 您能描述一下如何将过滤器应用于整个列/工作表吗?
猜你喜欢
  • 1970-01-01
  • 2022-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
相关资源
最近更新 更多