如何将OFFSET()公式与一系列值一起使用?

时间:2014-06-04 14:15:55

标签: google-sheets array-formulas

编辑:关于XY problem的免责声明:我想解决的实际,具体的问题是:我如何制作“递归”(这是正确的术语吗?)在Google Spreadsheets / Excel中使用无限范围的公式?我正在使用的解决方案涉及OFFSET()公式。我问这个问题是因为我希望能够对公式使用和实现范围的方式有一个可扩展的理解,特别是无限范围。


我正在使用Google Spreadsheets并尝试创建将自动扩展的ArrayFormulas,而无需使用填充句柄,因为必要的列中添加了新数据。

要做到这一点,我想在我进行计算时使用无限范围,例如A2:A,这样无论添加多少数据,我都不需要拖动填充任何数据或公式,我可以让它电子表格迭代并完成工作。

当我尝试将这些无限范围与OFFSET()公式一起使用时,我遇到了一个问题。我要做的是让范围内的每个单元格从它旁边的几个单元格中拉出值(因此是偏移量),使用这些值进行简单计算,并将其作为新单元格值。但是因为公式将指令解释为试图偏移整个(无限)值范围,所以它返回一个#REF!错误。这是一个共享示例表,演示了我正在尝试做的事情。

https://docs.google.com/spreadsheets/d/1V3ldSBoCrzyVWcn66wFBkDOmxt6iuYgtiU_H4KQ6J14/

如果由于某种原因你看不到公式,我正在使用的公式是:

C3 = ArrayFormula(偏移量(C3:C,0,-1) - 偏移量(C3:C,-1,-1))

F4 = Arrayformula(偏移(F3:F,0,-1)+偏移(F3:F,-1,0))

这两个都返回#REF!错误。 C3的替代文字显示:“错误:结果未自动展开,请插入更多行(1)。” F3的alt-text显示:“错误:检测到循环依赖。”

我很自信为什么这些不起作用 - 你显然不允许这样使用和引用范围。但是,我不知道如何解决这个问题。

电子表格中的两个用例基本上是相同的,倒退。如果我能找到一个我可以反向设计它为另一个工作的机会,但到目前为止我没有运气。

我已经搜索了很多东西,虽然我从来没有发现任何可以解决这个问题的东西,但是使用INDIRECT()函数似乎可以解决很多类似的问题。我无法理解这将如何适用于此,但该函数似乎严格用于从具有可变输入的单元格动态解析值。

(我应该提一下,这个数据是在后端表上,并且它被拉到另一张表上以显示前端的一些图表。如果这些数据是唯一涉及的内容,我不会在这里问一个问题。 )

任何帮助或朝着正确方向迈出的一步都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题,自动扩展偏移功能的一种方法是附加计数功能,例如。在excel中

=offset(C2,,,counta(C:C))

但是,这会给你一个循环引用错误。为了解决这个问题,这是我使用过的一个解决方案:

"OFFSET(C3,,,MATCH(9.99999999999999E+307,OFFSET(C3,,,ROWS(C:C)-ROW(C3))))"

此函数根据列中的最后一个数字单元格传递数组。为了正确使用它,它需要包装在一个可以处理数组的函数中,比如SUM()

相关问题