根据加权分数计算平均值

Calculation of average based on a weighted score

我正在尝试根据参数分数列表(0 到 5 之间)计算平均分数。诀窍是我希望能够对每个参数进行加权。 例如:

        Parameter A     Parameter B     Parameter C
Weight  100%            70%             0%
Score   4               5               0

在上面的例子中,由于省略了参数 c,平均分应该是 3,75。

我试过这个公式:=IF.ERROR(SUM((A3*A5);(B3*B5);(C3*C5))/COUNTA(A3:C3);"")。如果参数 weight 的 none 等于 0,该公式似乎有效。如何调整公式,以便在 weight 等于 0 时排除分数?

我认为这应该很容易,我只是无法让它工作。

会是这样的:

(1*4 + 0.7*5) / 2 = 3.75

异世界的公式是:

((WeightA/100 * scoreA) + (WeightB/100 * scoreB) + (WeightC/100 * scoreC)) / 3

检查这个:

=SUMPRODUCT( A2:A4, B2:B4 ) / SUM( B2:B4 )

来源:https://exceljet.net/formula/weighted-average

使用 COUNTA 您计算的是非空单元格,而您应该计算非零单元格。因此,假设权重在 A3:C3 中,分数在 A5:C5 中:

=IFERROR(SUMPRODUCT(A3:C3;A5*C5)/COUNTIF(A3:C3;">0");"Error: all the weigths are 0")
=SUMPRODUCT(A1:A3;B1:B3) / COUNTIF(B1:B3;"<>0") / 100

像这样的东西会起作用