PowerBI求助:按年月计算加权平均折扣的正确DAX公式
计算按月度销售额加权的平均折扣率(支持年月筛选)
问题根源
你之前用逐行计算折扣率再取平均的方式,得到的是简单算术平均,没有考虑每条销售记录的销售额规模权重,所以和基于总额计算的加权平均结果有偏差。
正确的度量值公式(以Power BI DAX为例)
加权平均折扣率 = VAR 总标价 = SUM('销售表'[GrossPrice]) VAR 总售价 = SUM('销售表'[NetPrice]) RETURN IFERROR( (总标价 - 总售价) / 总标价, 0 )
公式说明
- 两个
VAR变量分别计算当前筛选上下文(比如选中的年月)下的总标价和总售价,自动适配页面上的年月筛选器 - 用总折扣额(总标价 - 总售价)除以总标价,得到真正的加权平均折扣率——销售额越高的记录,对最终结果的影响权重越大
IFERROR处理当月无销售(总标价为0)的异常情况,返回0避免错误
为什么之前的公式不对
你之前的公式IFERROR(1-(NetPrice/GrossPrice),0)是逐行计算单条记录的折扣率,矩阵可视化默认会对这些行值取算术平均,完全忽略了不同记录的销售额差异,所以结果会偏离真实的加权平均(比如你示例中的53.3 vs 正确的51.1)。
内容的提问来源于stack exchange,提问作者Thomas Imer Pedersen
相关产品推荐
相关产品推荐

