Excel:如何在空白值导致比例权重变化的情况下取加权平均值

问题描述 投票:0回答:3

我有五个类别。每个类别在第 2 行中都有一个权重,在第 3 行中有一个值。在单元格

G3
中,我想要一个计算所有类别的加权平均值的公式。

主要警告是,某些类别没有值。如果某个类别有空白值,则应将其权重平均分配给其余有值的类别,然后取加权平均值。请参阅下面的两个示例:

enter image description here

在此照片中,单元格

C3
缺少值。剩下 4 个类别确实有价值。因此,其权重 0.2 将以四种方式重新分配,因此其余每个类别的加权平均值权重都会增加 (02./4 =0.05)。突出显示的单元格是所需的结果。

我将用另外一个场景来进一步说明:

enter image description here

在上述场景中,有两个类别存在缺失值,且权重均为 0.15。有 3 个具有值的类别。因此,每个缺失的类别都会将 0.15/3 = 0.05 的权重重新分配给剩余的三个类别。因此,由于缺少 2 个类别,每个类别的权重将增加 2*0.05 = 0.1。黄色框显示正确的加权平均值。

还有一个警告,如果公式能够足够动态地适用于大于 5 个类别的范围,那就太好了。关于如何实现这样的事情有什么想法吗?

excel excel-formula weighted-average
3个回答
1
投票

这似乎对我有用 - 我感觉它可以简化,但它只是通过问题中概述的步骤进行:

=SUMPRODUCT(B2:F2*B3:F3)+SUMPRODUCT(SUMPRODUCT((B3:F3="")*B2:F2)*B3:F3)/COUNT(B3:F3)

enter image description here

如果空白单元格实际上不是空白,而是包含作为公式结果返回的“”,您可以尝试

=SUMPRODUCT(B2:F2*N(+B3:F3))+
SUMPRODUCT(SUMPRODUCT((B3:F3="")*B2:F2)*N(+B3:F3))/COUNT(B3:F3)

正如出色的@XOR LX 在这个答案

中所建议的那样

1
投票

我认为这个数组公式可以做到这一点。使用 Ctrl + Shift + Enter

输入
=SUM(IF(B3:F3<>0,B3:F3*B2:F2))/SUM(IF(B3:F3<>0,B2:F2,0))

enter image description here


0
投票

每当我考虑比例性时,我认为缺失值的权重应该根据其权重分布在观测值内,而不是均匀分布。

所以在同一个例子中,

0.25 0.2 0.25 0.25 0.05
5 5 5 8

缺失的 0.2 个应该按比例分配给其他的,第一、第三和第四个为 0.2*(0.25/0.8)。第五个是 0.2*(0.05/0.8)。

0.3125 0 0.3125 0.3125 0.0625 1
5 5 5 8 5.1875

总和仍然为 1,但与我们为每个权重统一赋予 0.05 的情况相比,最后一个值的权重较小。 这也更实用,因为我们可以直接取两行的和积,然后除以未缺失值的总权重。 比如:

(0.25 * 5 + 0.25 * 5 + 0.25 * 5 + 0.05 * 8) / 0.8 = 5.1875

© www.soinside.com 2019 - 2024. All rights reserved.