【问题标题】:Using IMPORTRANGE as an array formula使用 IMPORTRANGE 作为数组公式
【发布时间】:2017-05-21 02:51:03
【问题描述】:

我在一个单元格中有一个 URL,这是 IMPORTRANGE 的标准。例如:

=IMPORTRANGE(B2,"sheet1!$A$1")

我找到了一个公式来收集它作为标准,但不是数组版本。

可以在here找到样本。

【问题讨论】:

  • 我理解正确吗:您正在尝试在 ARRAYFORMULA() 中使用提供的 IMPORTRANGE() 公式,因此您不必将其复制到每一行?

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


【解决方案1】:

我看到您在 B 列中填充了电子表格 ID,并且您正在尝试执行

=ArrayFormula(IMPORTRANGE(B2:B,"sheet1!$A$1")) 

并非每个电子表格函数都支持数组作为参数。特别是,importrange 没有。对于要导入的单独电子表格,您需要单独的 importrange 公式。

确实,从另一个电子表格导入数据不是批量操作;每次导入都必须通过在第一次调用时单击提示来授权。此外,这是一个非常缓慢的操作;你会得到认真的表现 如果尝试导入大量其他电子表格,请点击。

一般来说,如果您发现自己做了很多importrange,可能是时候重新考虑整体数据组织了。

【讨论】:

  • 除了@zaq 所写的内容之外,要导入的每个文件都需要您允许使用 importrange() 函数进行访问。因此,当添加新文件链接时,该文件的任何公式都将不起作用,直到您实际允许访问。自定义脚本可以解决这个问题,但如果导入的文件数量增加,运行可能会很耗时。 This link 有一个复制公式的脚本
【解决方案2】:

虽然您不能在数组公式中使用IMPORTRANGE(),但如另一个答案中所述,您可以在数组文字中使用它。在您的情况下,对于您的列 B 中包含电子表格 URL 的前五个单元格:

={
  IMPORTRANGE(B2,"sheet1!$A$1");
  IMPORTRANGE(B3,"sheet1!$A$1");
  IMPORTRANGE(B4,"sheet1!$A$1");
  IMPORTRANGE(B5,"sheet1!$A$1");
  IMPORTRANGE(B6,"sheet1!$A$1")
}

因此,您必须多次写入IMPORTRANGE(),并且只有在您知道要导入多少张工作表之前才能使用此技术。但优点是,这也适用于 IMPORTRANGE() 每返回多行的情况——在这种情况下,向下复制公式是不可行的,因为 IMPORTRANGE() 在其结果将覆盖单元格内容进一步向下覆盖的情况下会产生错误。

【讨论】:

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