PowerBI中实现累计百分比运行总计度量的问题求助
PowerBI 累计百分比运行总计实现问题
我需要在PowerBI中创建包含三类信息的图表:
- 总案例数(Total cases):用柱状图展示每日案例计数
- 每日占总数百分比(% of total per day):用折线图展示当日案例数占总案例数的比例
- 累计百分比运行总计(cumulative % running total):用折线图展示每日占比的累计求和(即从起始日期到当日的占比总和)
前两类信息已正常实现,但第三类无法达到预期效果。当前使用的度量仅计算了累计案例数,而非累计占比,代码如下:
Running Total MEASURE = CALCULATE ( COUNT ( 'Primes Encerrados'[Nome Cliente] ), FILTER ( ALL ( 'Primes Encerrados' ), 'Primes Encerrados'[Data] <= MAX ( 'Primes Encerrados'[Data] ) ) )
解决方案
要实现正确的累计百分比运行总计,需基于每日占比的累计求和或累计计数占总案例数的比例来构建度量,以下是两种可行方案:
方案1:基于每日占比的累计求和
- 先定义总案例数度量(若未定义):
总案例数 = COUNT('Primes Encerrados'[Nome Cliente])
- 定义每日占总数百分比度量:
每日占总数百分比 = DIVIDE([总案例数], CALCULATE([总案例数], ALL('Primes Encerrados')))
- 定义累计百分比运行总计度量:
累计百分比运行总计 = CALCULATE( [每日占总数百分比], FILTER( ALLSELECTED('Primes Encerrados'[Data]), 'Primes Encerrados'[Data] <= MAX('Primes Encerrados'[Data]) ) )
方案2:基于累计计数计算占比
直接计算累计案例数,再除以总案例数得到累计占比:
累计百分比运行总计 = VAR 累计案例数 = CALCULATE( COUNT('Primes Encerrados'[Nome Cliente]), FILTER( ALLSELECTED('Primes Encerrados'[Data]), 'Primes Encerrados'[Data] <= MAX('Primes Encerrados'[Data]) ) ) VAR 总案例数 = CALCULATE(COUNT('Primes Encerrados'[Nome Cliente]), ALL('Primes Encerrados')) RETURN DIVIDE(累计案例数, 总案例数)
关键说明
- 使用
ALLSELECTED('Primes Encerrados'[Data])而非ALL('Primes Encerrados'),可保留用户设置的筛选器(如切片器、筛选面板),确保累计计算符合当前筛选上下文 DIVIDE函数可避免除数为0的错误,比直接用/更安全
内容的提问来源于stack exchange,提问作者Iago Alibune
相关产品推荐
相关产品推荐

