ARRAYFORMULA 在扩展时不会增加单元格
ARRAYFORMULA does not increase cell as it expands
我正在尝试获取一个 ARRAYFORMULA 来从前一个单元格中减去当前单元格,
但看来如果我写
=ARRAYFORMULA((A3:A)-(A2))
公式在扩展时不会增加一个单元格。
这是我得到的示例
https://docs.google.com/spreadsheets/d/1ci4kiNCgjBZK0Ue218IRIk5t8tSmElF5EgbIxb1_Q9w/edit?usp=sharing
很明显它一直在引用A2(但我没有在公式中使用$A$2)
如果我不使用 ARRAYFORMULA,我会简单地使用
=SUM(A3-A2)
谁能给我一个解决方案?
情侣评论
你应该 accept
因为他投入了更多的工作并帮助你更清楚地提出你的问题。但是,如果您想要行下方的任何值,这些公式可以提供更大的灵活性(现在我认为基于动态数组向下流动没有多大意义,但从概念上讲,也许有人会发现它有用) .
简单公式 要求您的范围下方有一个单元格为空:
=iferror(filter(filter(N(A2:A),A2:A<>"")-N(A1:A),A1:A<>""),"")
复杂公式 将允许直接在下面的值(我再次承认这似乎是荒谬的,考虑到这是一个向下行的动态扩展...)
=Filter(filter(filter(N(A2:A),A2:A<>"")-N(A1:A),A1:A<>""),ISNUMBER(filter(filter(N(A2:A),A2:A<>"")-N(A1:A),A1:A<>"")))
我在你的页面上做了一个演示。
您的示例电子表格仍然是“仅查看”;所以我和其他任何人都不能直接离开我们的解决方案。但是,将以下公式放在 D1 中:
=ArrayFormula({"Difference"; IF(A2:A="",,IFERROR(A2:A-OFFSET(A2:A,-1,0)))})
这将创建 header(您可以根据需要在公式中更改)和所有结果。
(调整到您的实际电子表格中的位置,如您的 post 中所示,这将是 =ArrayFormula({"Difference";IF(L7:L="",,IFERROR(L7:L-OFFSET(L7:L,-1,0)))})
。)
我正在尝试获取一个 ARRAYFORMULA 来从前一个单元格中减去当前单元格, 但看来如果我写
=ARRAYFORMULA((A3:A)-(A2))
公式在扩展时不会增加一个单元格。
这是我得到的示例
https://docs.google.com/spreadsheets/d/1ci4kiNCgjBZK0Ue218IRIk5t8tSmElF5EgbIxb1_Q9w/edit?usp=sharing
很明显它一直在引用A2(但我没有在公式中使用$A$2)
如果我不使用 ARRAYFORMULA,我会简单地使用
=SUM(A3-A2)
谁能给我一个解决方案?
情侣评论
你应该 accept
简单公式 要求您的范围下方有一个单元格为空:
=iferror(filter(filter(N(A2:A),A2:A<>"")-N(A1:A),A1:A<>""),"")
复杂公式 将允许直接在下面的值(我再次承认这似乎是荒谬的,考虑到这是一个向下行的动态扩展...)
=Filter(filter(filter(N(A2:A),A2:A<>"")-N(A1:A),A1:A<>""),ISNUMBER(filter(filter(N(A2:A),A2:A<>"")-N(A1:A),A1:A<>"")))
我在你的页面上做了一个演示。
您的示例电子表格仍然是“仅查看”;所以我和其他任何人都不能直接离开我们的解决方案。但是,将以下公式放在 D1 中:
=ArrayFormula({"Difference"; IF(A2:A="",,IFERROR(A2:A-OFFSET(A2:A,-1,0)))})
这将创建 header(您可以根据需要在公式中更改)和所有结果。
(调整到您的实际电子表格中的位置,如您的 post 中所示,这将是 =ArrayFormula({"Difference";IF(L7:L="",,IFERROR(L7:L-OFFSET(L7:L,-1,0)))})
。)