仅当行包含数据时才对数组加权平均

时间:2017-12-13 17:45:26

标签: excel excel-formula

我有以下两列数据,想要计算加权平均值,B列是权重。但是,我想从计算中排除A列中没有数据的权重,即下面的第2行和第8行。

我怎样才能直截了当地做到这一点?

我使用的公式是:

{= SUM(A2:A9 * B2:B9)/ SUM(B2:B13)}

问题在于,即使A列始终没有数据,这也会自动选择整个列B,或者以不同的方式选择所有权重。

| Column A  | Column B|
-----------------------
| 158.3     |   59.3
|           |   1.5
| 166.5     |   7.1
| 150.7     |   8.1
| 151.5     |   4.0
| 182.8     |   6.7
| 111.2     |   5.6
|           |   0.2

2 个答案:

答案 0 :(得分:1)

希望以下公式可能适合您。

=SUMPRODUCT(A2:A9,B2:B9)/SUMIF(A2:A9,">0",B2:B9)

让我知道它给你的结果。

答案 1 :(得分:1)

enter image description here

以上使用以下公式。

=SUMPRODUCT($A$3:$A$10,$B$3:$B$10)/SUMPRODUCT($B$3:$B$10*($A$3:$A$10<>""))

Sumproduct执行数组操作。因此,避免在sumproduct函数中使用像C:C这样的完整列引用,因为它会导致过多的计算。