仅在行有数据时才加权平均数组

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

我怎么能直接做到这一点?

我使用的公式是:

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

问题是这会自动select整个列B,或者换句话说,即使列A并不总是有数据,所有的权重。

| 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 

希望下面的公式可能适合你。

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

让我知道它给你什么结果。

在这里输入图像说明

以上使用以下公式。

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

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