You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI中如何创建忽略筛选的固定行计数及占比列

Power BI 固定BU/Sub-BU人员基数的占比计算方案

核心思路

要实现忽略属性筛选的固定人员计数,关键是清除属性表的筛选上下文,同时保留业务单元(main BU/Sub-BU)的筛选上下文,确保每个BU层级的基数固定不变。

度量值编写(分场景)

假设模型表结构:

  • 人员表:含人员ID、关联业务单元表的外键、关联属性表的外键
  • 业务单元表:含main BU、Sub-BU字段
  • 属性表:存储各类属性筛选字段

1. 固定Sub-BU总人数(忽略属性筛选)

固定Sub-BU总人数 = 
CALCULATE(
    COUNT('人员表'[人员ID]),
    ALLEXCEPT('业务单元表', '业务单元表'[main BU], '业务单元表'[Sub-BU])
)
  • 用ALLEXCEPT保留业务单元表的main BU和Sub-BU筛选,清除其他所有筛选(包括属性表的筛选),确保每个Sub-BU的总人数固定,不受属性选择影响。

2. 固定main BU总人数(忽略属性筛选)

如果需要主业务单元的固定基数:

固定main BU总人数 = 
CALCULATE(
    COUNT('人员表'[人员ID]),
    ALLEXCEPT('业务单元表', '业务单元表'[main BU])
)

3. 占比计算场景

场景A:当前筛选人数(含属性筛选)占Sub-BU固定总人数的比例

当前人数占Sub-BU固定比 = 
DIVIDE(
    COUNT('人员表'[人员ID]),  // 当前属性筛选下的人数
    [固定Sub-BU总人数]        // 该Sub-BU的固定总人数
)

场景B:Sub-BU固定总人数占所属main BU固定总人数的比例

Sub-BU占main BU固定比 = 
DIVIDE(
    [固定Sub-BU总人数],
    CALCULATE([固定main BU总人数], ALL('业务单元表'[Sub-BU]))
)
  • 通过ALL('业务单元表'[Sub-BU])清除Sub-BU的筛选,获取当前main BU的固定总人数作为分母。

注意事项

  • 确保人员表与业务单元表、属性表的关联是单向筛选(默认即可,避免筛选上下文反向传递导致基数异常)。
  • 如果存在其他筛选器(如时间)需要保留,可在ALLEXCEPT中添加对应表的字段,比如ALLEXCEPT('业务单元表', '业务单元表'[main BU], '业务单元表'[Sub-BU], '日期表'[年份])。
  • 用DIVIDE替代直接除法,避免除数为0的报错。

内容的提问来源于stack exchange,提问作者kosekk_g

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 19:57:18