ArrayFormula仅在使用Indirect()的第一行上起作用

时间:2018-10-25 18:27:04

标签: google-sheets

目标是将计算(Y4:Y-(W4:W*V4:V))+S4:S-T4:T)应用于列的单元格,并保留0,其中所关注行中的V单元格为blank或{{1} }。 注意:计算本身并不重要。

当第一行的0列为V0时,下面的公式仅将blank应用于受影响的第一行,但其余列保持空白

但是,如果检查0单元格的条件返回第一行的V(表示所关注行中的FALSE单元格的数量为非零),则整列获取适用于每行的适当计算结果。

V

如何修改公式,以便即使第一行的条件将=ARRAYFORMULA( IF( OR( ISBLANK(INDIRECT("V" & ROW())), EQ(INDIRECT("V" & ROW()), 0) ), 0, (Y4:Y-(W4:W*V4:V))+S4:S-T4:T ) ) 单元格评估为V0时,也可以填充列的其余部分?

1 个答案:

答案 0 :(得分:1)

您的公式有两个问题:

  1. 在内部不能使用OR之类的聚合函数 arrayformula。这在这里描述 https://productforums.google.com/forum/#!topic/docs/dl_9H6hFwaE

  2. 可以使用一个逻辑表达式来测试0blank C1=0EQ(C1,0),如果C1为 0或空白。 (请注意,这使得很难测试单元格是否 包含0,但不包含空白)。在这里https://support.microsoft.com/en-au/help/214244/xl-how-to-create-a-formula-to-correctly-evaluate-blank-cells

我不知道您为什么使用INDIRECT,但是此公式应根据需要工作:

=ARRAYFORMULA(if( eq(V4:V,0),0, (Y4:Y-(W4:W*V4:V))+S4:S-T4:T))

我们已经删除了逻辑OR(这会杀死arrayformula)。

我们删除了空白和0的冗余测试;