DAX实现同表内带例外规则的项目ID计数度量值编写
DAX 实现带排除规则的项目ID计数
假设存储员工-项目映射关系的表名为StaffProject,表结构包含Employee name(员工姓名)、role name(角色名称)、project ID(项目ID)三列,可直接使用以下度量值完成统计,使用前将代码中"角色x"、"角色y"替换为你实际需要判定的两个角色名称即可:
Valid Project Count = COUNTROWS ( FILTER ( -- 取当前筛选上下文下所有不重复的项目ID DISTINCT ( 'StaffProject'[project ID] ), -- 逐项目校验角色存在性 VAR HasRoleX = CALCULATE ( NOT ISEMPTY ( 'StaffProject' ), 'StaffProject'[role name] = "角色x" ) VAR HasRoleY = CALCULATE ( NOT ISEMPTY ( 'StaffProject' ), 'StaffProject'[role name] = "角色y" ) -- 仅保留不同时存在两类角色的项目 RETURN NOT ( HasRoleX && HasRoleY ) ) )
- 该度量值自动兼容外部筛选上下文,按部门、时间、人员属性等维度切片时,会基于筛选后的人员范围自动判定项目是否符合计数规则,无需额外修改逻辑
- 如果你已经单独搭建了角色维度表、项目维度表,将代码中角色、项目字段替换为维度表对应字段即可,查询性能会更优
- 不要直接使用
COUNT('StaffProject'[project ID])类的基础聚合写法,这类写法无法按项目维度完成跨角色的存在性校验,会出现重复计数、规则不生效的问题
内容的提问来源于stack exchange,提问作者73x
相关产品推荐
相关产品推荐

