如何在Power BI中以分类总计为分母计算子分类占比?
解决方案
要实现子分组占比以父分类总计为分母、整体占比以全部人群为分母的效果,核心是让分母根据当前上下文动态调整——在子分组行(如Settings)时,忽略子分组的筛选,保留父分类(如Children)的筛选;在整体行时,保留全量筛选。
步骤1:创建动态分母度量值
先定义一个用于计算当前分组(父分类)总人数的度量值,替代原来直接用[individuals]作为分母:
Total Individuals for Group = CALCULATE( [individuals], REMOVEFILTERS('tbl'[Setting]) // 仅清除当前Setting的筛选,保留其他筛选条件(如Age Group=Children) )
- 当处于子分组行(如Setting=C)时,
REMOVEFILTERS('tbl'[Setting])会取消当前Setting的筛选,此时计算的是父分类(Children)的总人数(229); - 当处于整体行时,没有Setting的筛选,该度量值等价于
[individuals],即全部人群数量。
步骤2:修改占比度量值
将原Percent waivered的分母替换为上面的动态度量值:
Percent waivered = DIVIDE([waivered], [Total Individuals for Group], 0)
为什么之前的ALL()/REMOVEFILTERS()没生效?
你之前尝试的ALL()会清除所有筛选条件,导致分母变成全部人群数量,而非父分类的总计;而直接用无参数的REMOVEFILTERS()也会清除所有筛选,必须指定要忽略的子分组列('tbl'[Setting]),才能保留父分类的筛选上下文。
内容的提问来源于stack exchange,提问作者A.Birdman
相关产品推荐
相关产品推荐

