【问题标题】:Using INDIRECT in Array Formula在数组公式中使用 INDIRECT
【发布时间】:2020-04-30 05:53:26
【问题描述】:

我将这个数组公式与 INDIRECT 一起使用,因为它是我知道维护我的引用的唯一方法,因为脚本中有参考表,可以定期向表 Data! 添加另一行。如何添加到以下公式中以仅显示数组中高于$CQ$17 中的值且低于$CQ$16 中的值的值?因为它每分钟更新一次,所以可以在不增加我的工作表处理时间的情况下做到这一点吗?

=ARRAYFORMULA(INDIRECT("Data!E"&13+$F$7&":E"&597+$F$7))

【问题讨论】:

  • CQ16 和 CQ17 中的值是日期吗?如果没有 INDIRECT() 有一种更简单的方法可以做到这一点,但是您需要共享一个数据来自脚本的方式的示例以及您希望查看分析/显示数据的方式的示例.
  • 不,它们是数字。
  • 仍然有助于查看样本。一个真实的样本会很棒,但即使是屏幕截图也可能会有所帮助。没有充分的理由,床单通常不会变得那么宽 :)
  • 我认为有必要添加一个预期结果的样本,至少以屏幕截图的形式。
  • 如果您不想共享样本,这很公平。希望没有其他人会理解您的简单要求。

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


【解决方案1】:

IIUC,你不需要INDIRECT,可以使用QUERY

=QUERY(
  OFFSET(Data!E13, $F$7, 0, 597 - 13 + 1, 1),
  "
    select E
    where E > " & $CQ$17 & " and
          E < " & $CQ$16,
  -1
)

FILTER:

=FILTER(
  OFFSET(Data!E13, $F$7, 0, 597 - 13 + 1),
  OFFSET(Data!E13, $F$7, 0, 597 - 13 + 1) > $CQ$17,
  OFFSET(Data!E13, $F$7, 0, 597 - 13 + 1) < $CQ$16
)

构造相同范围的那三遍不好,我会选择QUERY

不过,样本表会很有帮助。

【讨论】:

  • 谢谢!我知道您说最好使用查询示例,但它给出了错误“无法解析函数查询参数 2 的查询字符串:NO_COLUMN:Col1。我不确定问题,所以我将使用过滤器示例,除非您马上就知道可能导致错误的原因。
  • 那行得通。我不得不重新添加间接,因为脚本每分钟插入一行,否则会将 Data!E13 放到 Data!E14 等等。所以这是我的最终公式,除非有更好的方法来添加间接引用。非常感谢你的帮助。 =QUERY(OFFSET(INDIRECT("Data!E13"), $F$7, 0, 597 - 13 + 1, 1), " select E where E > " & $CQ$17 & " and E
  • 我不太明白。这些应该完全相同:INDIRECT("Data!E13")Data!E13。也许最好为Data!E13 设置一个命名范围,然后在公式中使用它?虽然我不确定你的脚本是如何工作的,但它是否会与命名范围混淆......
猜你喜欢
  • 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
相关资源
最近更新 更多