我在excel中执行加权平均逻辑时遇到问题 我正在寻找4个不同可交付成果的领域:总计,完成,待定和重量。
特定交付物的加权平均值计算如下:(完整/总计)*重量例如((5/10)* 0.20)= 10%
对于每个可交付成果,我计算了%,然后将所有%加在一起。
可交割1 - 10 = 10%+ 20%+ 5%+ .... = 65%
我的问题是:
如果对于特定的可交付成果,可用字段是“不适用”'或者' 0'然后该可交付成果的加权平均值为0%。在那里,总数将在较低的一侧。那么,有没有更好的方式来表示这个?我该如何解决这个问题?
答案 0 :(得分:0)
好的,如果我正确地理解你,你会说以下内容:
(complete/total) * weight = weighted_average
这是许多加权平均值之一,将加总以提供total_deliverable_value。
您有一种情况,由于数据问题,此算法输出0%的weighted_average。这会错误地降低total_deliverable_value。
选项:
而不是:
total_deliverable_value = sum(weighted_average::weighted_average)
使用类似的东西:
total_deliverable_value = sum(weighted_average::weighted_average) / count_of_data_values
其中count_of_data_values是您拥有的非缺失数据值的数量。
根据评论更新
您必须更改所有计算的公式。因此,请选择一个完美的' 100%的情景,例如5x weighted_averages,其中weighted_average = 0.2(20%)
您的原始计算会给出:
a) 0.2+0.2+0.2+0.2+0.2 = 1 (100%)
b) 0.2+NA+0.2+0.2+0.2 = 0.8 (80%)
这表明a不如b好(不要争论丢失数据是否意味着是真的),但是你希望表明实际上它们应该被认为是几乎相同的。
新计算将给出:
a) 1/5 => 0.2 (20%)
b) 0.8/4 => 0.2 (20%)
因此两者都是相同的total_deliverable_value。如果您想将这些缩放至100%。这样做:
total_deliverable_value = (sum(weighted_average::weighted_average) / count_of_data_values) * count_of_expect_values
现在我们看起来像这样:
a) ((0.2+0.2+0.2+0.2+0.2)/5)*5 = 1 (100%)
b) ((0.2+NA+0.2+0.2+0.2)/4)*5 = 1 (100%)
更新:处理不一致的max weighted_averages
以上所有都有效,因为假设所有单独的weighted_averages具有一致的最大值。例如5个值的最大值为0.2:
[0.2, 0.1, 0.18, 0.08, 0.05] ==> 61%
因此,我们可以承担丢失一些数据点并仍然进行计算以使total_deliverable_value得以进行比较:
[0.2, 0.1, NA, NA, 0.05] ==> 58%
但是,如果最大值不一致,例如,第1个weight_average max为0.5,我们的结果就会中断:
[0.4, 0.09, NA, NA, 0.15] ==> 106%
100%应该超出最大total_deliverable_value。有一个简单的解决方案。使用公式中的weighted_average_max值。我们不再缺少40%的价值,我们缺少20%:
[0.4 (max 0.5), 0.09 (max 0.1), NA (max 0.1), NA (max 0.1), 0.15 (max 0.2)] ==> 80%
与所有数据点类似的东西进行比较:
[0.4, 0.09, 0.05, 0.03, 0.15] ==> 72%
这个新公式:
total_deliverable_value = (sum(weighted_average::weighted_average) / portion_of_max_values_existing) * total_of_max_values