在DAX Power BI中实现累计值占动态总人口的百分比展示
实现方法
你只需要新建一个DAX度量值,用当前的Running Total除以筛选上下文动态计算的TotalPopulation,同时处理除零异常即可。
核心DAX代码
根据你的TotalPopulation度量值的定义,分两种情况处理:
情况1:TotalPopulation已自动适配筛选上下文
如果TotalPopulation本身就是计算当前筛选(比如你设置的2018-01-01至2022-01-01日期范围)下的总人口,直接用以下代码:
Running Total % of Population = DIVIDE( [Running Total], [TotalPopulation], 0 // 当TotalPopulation为0时返回0,也可以改为BLANK()隐藏空值 )
情况2:TotalPopulation是全局固定值,需强制适配筛选上下文
如果TotalPopulation默认计算全量数据,需要让它跟随当前筛选(比如日期范围)动态调整,就用CALCULATE + ALLSELECTED锁定筛选上下文:
Running Total % of Population = DIVIDE( [Running Total], CALCULATE( [TotalPopulation], ALLSELECTED('Date'[Date]) // 保留用户设置的日期筛选,确保分母是筛选后的总人口 ), 0 )
使用步骤
- 在Power BI的「建模」选项卡中点击「新建度量值」,粘贴上述代码;
- 将新度量值添加到你的可视化表格中;
- 选中该度量值,在「格式」面板中设置为百分比格式,并调整小数位数(比如保留2位)。
这样调整筛选条件(比如修改日期范围)时,这个百分比会自动跟随Running Total和TotalPopulation的动态变化同步更新。
内容的提问来源于stack exchange,提问作者matt_vice89
相关产品推荐
相关产品推荐

