全天更新的加权平均值

Weighted Averages Updating Through The Day

我想计算一组数据的加权平均值。 在每个时间块结束时,将输入一个值。 时间块的价值都不同,时间 A 为 2.5 小时,时间 B 为 3.5 小时,时间 C 为 3 小时。

我希望平均值包括一个包含 0 的单元格。 我希望平均值不包括空单元格,因此不在计算中包括该时间段。

所以使用下面的例子,因为时间 C 是空白的,我希望它用 2.5 和 3.5 计算 9 和 3 的加权平均值,因此忽略空白单元格和 3.0。

如果时间 C 说 0,我希望它用 2.5、3.5 和 3 对 9、3 和 0 进行加权平均。

Spreadsheet

=AVERAGE(C3:C5) 不考虑时间块的权重,忽略空白单元格并在计算中包括 0。

=SUMPRODUCT(C3:C5,A3:A5)/SUM(A3:A5) 考虑了权重,但如果单元格为空白,则当只有 1 或 2 个时,仍除以 3 个时间块的总和这些时间块是适用的。

=AVERAGEIF(C3:C5,"<>0") 不考虑时间块的权重,忽略空白单元格并在计算中包括 0。

什么公式会考虑权重,在计算中包括 0 并忽略空白单元格及其相关时间块?

基本上我想要一个单一的公式,当数据输入到上面的行中时,它将更新平均值作为当天的当前平均值。

我在想可能有更聪明的方法来做到这一点,例如与聚合,但这肯定是一种方式

=SUMPRODUCT(C3:C5*A3:A5)/SUMPRODUCT(A3:A5*(C3:C5<>""))

这个比较简单

=SUMPRODUCT(C3:C5*A3:A5)/SUMIF(C3:C5,"<>",A3:A5)