Google sheets 递归数组公式

Google sheets 递归数组公式,google-sheets,array-formulas,Google Sheets,Array Formulas,我正在尝试在另一列中创建从设置日期到最近日期的连续日期列表 =ARRAYFORMULA(IF(OR(A2:A=MAX(C:C),A2:A=""),"",DATEVALUE(A2:A+1))) 我使用MAX来查找C列中最近的日期。我试图让这个公式做的是递归检查上面单元格中的日期,以确定是否已达到MAX日期。我已经确定A2已经有了设定的开始日期 但是输出只在一个单元格中,我不知道为什么 感谢您的帮助。目前困扰您的数组公式是,按照定义,它将永远持续下去,并且是自参考的。也许有一种方法可以做到这一点:

我正在尝试在另一列中创建从设置日期到最近日期的连续日期列表

=ARRAYFORMULA(IF(OR(A2:A=MAX(C:C),A2:A=""),"",DATEVALUE(A2:A+1)))
我使用MAX来查找C列中最近的日期。我试图让这个公式做的是递归检查上面单元格中的日期,以确定是否已达到MAX日期。我已经确定A2已经有了设定的开始日期

但是输出只在一个单元格中,我不知道为什么


感谢您的帮助。

目前困扰您的数组公式是,按照定义,它将永远持续下去,并且是自参考的。也许有一种方法可以做到这一点:将首选项设置为迭代,并帮助它将到达重复单元的过程解释为收敛。 这里有一种回避这些问题的方法。例如,通过将其封装在IFERROR中,您可以更加防弹,但基本上您可以精确计算需要的条目数,然后在数组公式中相应地设置范围。在A3中,您放置以下内容:

=arrayformula(DATEVALUE(Row(indirect("A3:A"&(max(C:C)-A2+2)))+A2-2))
这将构造您想要的精确范围,然后使用显式公式(而不是递归公式)计算每个条目


编辑:上述实现假设您至少需要两个日期。您可以使用以下可读性较差的公式来处理这种情况和其他奇怪的情况,=ifmaxC:C>A2,iferrorarrayformulaDATEVALUERowindirectA3:A&maxC:C-$A$2+2+$A$2-2,

所以这个公式位于A3中?是的,公式位于A3中可能您已经这样做了,但如果在A3中放置IFORA2=maxC:C,A2=,,DATEVALUEA2+1并将其向下拖动,则效果会很好。这就把它缩小到一个数组公式中。你必须设置文件电子表格设置迭代计算吗?否则,我会看到一个关于循环引用的错误。