解决 ARRAYFORMULA() 循环依赖错误

问题描述 投票:0回答:1

情况:我有一个包含 2 列的选项卡,A 和 B。A 为空白或包含我手动添加的破折号

-
。 B 是一个日期。

期望的行为:当我在 A 列中添加破折号时,我希望日期在同一行的 Col B 中增加 1 天。如果 A 为空,则日期应与其上方的行相同。

当前设置:现在我有一个有效的公式,但我想让它成为一个 ARRAYFORMULA(或 BYROW 等),所以我不需要将我现有的公式拖到任意长度并可能跑过去它在未来。我在

B5
(产生所需结果)中输入并向下拖动的公式是:

=IF(A5="-",
OFFSET(B5,-1,0)+1,
OFFSET(B5,-1,0))

问题:上面的公式非常有效,但我必须将它拖下来,我想避免。我尝试了下面的方法,但每个方法都返回“循环依赖”错误。这是 FLATTEN 之类的东西进来的地方吗?

尝试 1:

=ARRAYFORMULA(IF(A5:A="-",
OFFSET(B5:B,-1,0)+1,
OFFSET(B5:B,-1,0))

尝试 2:

=BYROW(A5:A,LAMBDA(r,IF(r="-",
OFFSET(r,-1,1)+1,
OFFSET(r,-1,1))

google-sheets-formula array-formulas
1个回答
1
投票

假设starting_date

Cell_B4

手动给出
=scan(B4,A5:A,lambda(a,c,if(c="-",a+1,a)))

© www.soinside.com 2019 - 2024. All rights reserved.