2016-05-16 27 views
1

使用`SUMPRODUCT`不受零

分割參見上面的圖像爲我的假想級片在自由報計算值。有兩排。其中一個包含每個作業所實現的要點,而另一個包含可用的要點。我想保持分數的平均值,但我不希望每次添加新分配時更新運行平均值的公式。目前,我使用:

SUMPRODUCT(ENTIRE_POINTS_ACHIEVED_ROW, 1/(ENTIRE_POINTS_AVAILABLE_ROW)) 

然後我發現通過非空行數劃分,使用COUNTA()平均值。

正如你在上面看到的,作業1-3是完整的,但沒有第四個的信息。正因爲如此,我得到了一個除零誤差。我怎麼能適應這個?或者,有沒有更直接的方法來實現我上面描述的?

回答

4
作爲

Scott Craner proposed,使用陣列式是遵循的方式。

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

enter image description here

:與LO計算值,下面的公式應該工作(與CTRL + SHIFT + ENTER使其陣列式輸入) 我改編了這個example from the OpenOffice.org Calc documentation

+0

這工作完美,謝謝。我不知道「數組公式」的概念。當我有一點時間時,我可能應該考慮一下。 –

2

使用此數組公式改爲:

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

作爲一個陣列,必須用Ctrl-Shift鍵回車確認。如果做得好,{}將被放在公式中。

這是非常好的,它可能不適用於LibreOffice。

enter image description here


+0

謝謝。這有效,但公式稍微偏離。這取(1/3)*(2/4)*(3/5)的乘積,然後除以計數。例如,如果我們將「PRODUCT」更改爲「SUM」,這將起作用。另一方面,它看起來像howhowwohu使用'SUMPRODUCT'發佈了一個答案。 –

+0

@ChesterVonWinchester 1/3 = .33333,2/4 = .5和3/5 = .6;那麼.3333 * .5 * .6 = .1;那麼.1/3 = .0333333我不明白這是錯誤的答案。 –

+0

這是正確的,但它不是3個等級的平均值;它是3個等級的乘積,除以3. –