如何在Power BI中按月份计算各品类的加权金额占比?
解决Power BI每月品类加权金额占比的度量值问题
问题分析
你当前的度量值错误在于使用ALL(table[amount]),它会清除所有筛选上下文,导致分母是整个数据集的总金额,而非当月所有品类的总金额,这就是分子和分母逻辑不匹配的原因。另外你需要的是加权占比,所以要先基于amount和weight计算加权金额,再计算占比。
正确度量值写法
1. 核心度量:月度品类加权占比
品类月度加权占比 = DIVIDE( -- 分子:当前筛选下(当月+当前品类)的加权金额 SUM('你的表名'[amount] * '你的表名'[weight]), -- 分母:当月所有品类的加权总金额,保留日期筛选,清除品类筛选 CALCULATE( SUM('你的表名'[amount] * '你的表名'[weight]), ALL('你的表名'[category]) ) )
2. 非加权版本(若不需要weight参与计算)
如果你的需求是普通金额占比而非加权占比,直接替换计算逻辑即可:
品类月度金额占比 = DIVIDE( SUM('你的表名'[amount]), CALCULATE( SUM('你的表名'[amount]), ALL('你的表名'[category]) ) )
逻辑说明
ALL('你的表名'[category])仅清除品类维度的筛选,保留日期(月度)的筛选上下文,确保分母是当前月份所有品类的总金额/加权总金额。DIVIDE函数会自动处理除零场景,避免报表报错。
可视化验证
将新度量值放入折线图的「值」字段,X轴保留日期并设置为月度粒度,图例保留品类,即可得到每月各品类的占比数据(比如2024年1月品类1占55%、品类2占45%这类结果)。
内容的提问来源于stack exchange,提问作者Dag Gustafson
相关产品推荐
相关产品推荐

