为什么ArrayFormula导致空值“”要注册> 0

时间:2019-11-06 15:30:33

标签: if-statement google-sheets sum google-sheets-formula array-formulas

示例工作表链接:https://docs.google.com/spreadsheets/d/16huMKzeqbg3gho5klvRj91878H1ZARIs4F9RVRwE9M0

标签:第45-48周

我将这个arrayformula设置为从另一个选项卡中提取$金额数据:

单元格F42:

=IFERROR(IF(value(F4) = value(Settings!$B$26),ArrayFormula(INDEX(FullReport!$A:$A,SMALL(IF("Labour Cost"=FullReport!$A:$A,ROW(FullReport!$A:$A)+1),1))),""),0)

如果该值为空,则保留空白字段。如果值大于$ 0.00,我设置了另一个公式来读取此数据

单元格D38:

=SUM(((IF(C42 > 0, C42,C41)) + (IF(D42 > 0, D42,D41)) + (IF(E42 > 0, E42,E41)) + (IF(F42 > 0, F42,F41)) + (IF(G42 > 0, G42,G41)) + (IF(H42 > 0, H42,H41)) + (IF(I42 > 0, I42,I41))))+B39

不幸的是,似乎在单元格F42中生成的空白字段“”正在使单元格D38注册为大于$ 0.00的值,并抛弃了预期的结果。

正在寻找解决方法,谢谢您的协助。

1 个答案:

答案 0 :(得分:1)

如果运行best = probabilities[0] best_image = image_names[0] for index, prob in enumerate(probabilities): if prob > best: best = prob best_image = image_names[index]; ,则输出为空白单元格,因此所有与arrayformula有关的问题都应丢弃。

另一方面,有=IF(F42 > 0, F42, F41)会产生=IF(D42 > 0, D42, D41),因此在您的FALSE中,共有4个值: B39 + C41 + D41 + E41 产生SUM(请参见红色表格)

0

如果您希望总和排除 D41 值,则您的$5,571.08公式应为:

IF

=IF((D42=0)+(D42=""), D42, D41) 符号充当+


或者您可以使用:

OR

0