使用`SUMPRODUCT`而不除零

时间:2016-05-16 18:26:46

标签: excel libreoffice-calc

请参阅上图,了解Libre Calc中我的假设成绩单。有两行。一个包含每个作业获得的分数,而第二个记录可用的分数。我想保持成绩的平均运行,但我不希望每次添加新作业时更新运行平均值的公式。目前,我正在使用:

SUMPRODUCT( ENTIRE_POINTS_ACHIEVED_ROW, 1 / (ENTIRE_POINTS_AVAILABLE_ROW) )

然后我使用COUNTA()找到平均值除以非空行数。

如上所示,分配1-3已完成,但第四项没有任何信息。因此,我得到零除错误。我怎么能适应这个?或者,有没有更简单的方法来实现我上面描述的内容?

2 个答案:

答案 0 :(得分:4)

作为Scott Craner proposed,使用数组公式是要遵循的方法。使用LO Calc,以下公式应该有效(使用 CTRL + SHIFT + ENTER 输入它以使其成为数组公式):

  

=SUMPRODUCT(IF(B2:E2<>0; B2:E2; "");1/B3:E3)/COUNT(B2:E2)*100

enter image description here

我为此修改了example from the OpenOffice.org Calc documentation

答案 1 :(得分:2)

请改用此数组公式:

=SUM(IF($B$3:$E$3<>"",B2:E2/B3:E3))/COUNT(B2:E2)

作为数组,必须使用Ctrl-Shift-Enter确认。如果处理得当,{}将围绕公式。

这很好,它可能在LibreOffice中不起作用。

enter image description here