如何在Power BI中实现同一列单个值与总计值的除法计算?
Power BI计算类别分数占总分数比例的问题解决
你的需求是把单个类别(比如Hardware)的分数除以全表总分数,得到占比(比如44/470≈0.09),但当前用的DAX公式返回了470,这是因为公式逻辑有误,下面给出修正方案:
原公式的问题
COUNTROWS(FILTER(Factory,Factory[Category]="Hardware"))统计的是Hardware类别的行数,不是你需要的分数值44- 没有正确获取不受筛选影响的全表总分数,导致上下文计算错误
正确的DAX写法
根据你的表结构,提供两种可行的度量值:
情况1:已经有总分数度量值
如果你已经创建了计算全表总分数的度量值[Total Score],可以用这个公式:
Hardware占比 = DIVIDE( CALCULATE(SUM(Factory[Score]), Factory[Category] = "Hardware"), [Total Score] )
情况2:直接计算总分数
如果没有预定义的总分数度量值,直接在公式里计算全表总分:
Hardware占比 = VAR 硬件类别分数 = CALCULATE(SUM(Factory[Score]), Factory[Category] = "Hardware") VAR 全表总分数 = CALCULATE(SUM(Factory[Score]), ALL(Factory)) RETURN DIVIDE(硬件类别分数, 全表总分数)
核心要点
- 用
SUM(Factory[Score])获取对应类别的分数值,替代原公式里统计行数的COUNTROWS ALL(Factory)的作用是清除当前的筛选上下文,确保计算的是全表所有行的总分,不会被当前类别筛选限制DIVIDE是DAX里安全的除法函数,会自动处理除数为0的情况,避免出现错误
内容的提问来源于stack exchange,提问作者Cheries
相关产品推荐
相关产品推荐

