Power BI中实现排除员工维度的项目类型平均工时计算问题
Power BI 实现排除员工维度的项目类型平均工时计算
需求背景
你的数据包含员工(Employee)、项目类型(Project Type)、项目ID(Project ID)、项目工时(Hours spent on Project ID)、关闭日期(Closed Date)字段,已配置基于日期层级的年份切片器。需要计算去掉员工维度后,各项目类型的团队平均工时,用来对比员工个人和团队的项目类型平均工时。
问题根源
之前创建不含员工的表关联日期后,因未正确清除员工维度的筛选上下文,导致计算结果与员工个人平均工时重复;不关联日期则无法匹配切片器的年份筛选,触发可视化报错。你当前使用的度量值逻辑不符合需求,需要调整DAX公式。
正确DAX度量值
方案一:保留项目类型和日期筛选
项目类型团队平均工时 = CALCULATE( AVERAGE('你的表名'[项目工时]), ALLEXCEPT('你的表名', '你的表名'[项目类型], '你的表名'[Closed Date]) )
- 核心逻辑:
ALLEXCEPT会保留项目类型和关闭日期的筛选(适配年份切片器),移除其他所有筛选(包括员工维度),确保计算结果为当前项目类型、当前筛选年份下,所有员工的平均工时。
方案二:仅移除员工筛选
如果只需要排除员工维度,其他筛选(年份、项目类型)都保留,可使用更简洁的公式:
项目类型团队平均工时 = CALCULATE( AVERAGE('你的表名'[项目工时]), ALL('你的表名'[Employee]) )
- 核心逻辑:
ALL('你的表名'[Employee])直接清除员工字段的筛选上下文,保留其他所有筛选条件,最终效果与方案一一致。
使用说明
- 将公式中的
你的表名替换为你实际的数据表名称 - 该度量值可直接添加到可视化组件中,搭配员工个人平均工时(如
AVERAGE('你的表名'[项目工时])),即可实现个人与团队数据的对比 - 年份切片器的筛选会自动作用于该度量值,无需额外处理表关联
内容的提问来源于stack exchange,提问作者reallycow21
相关产品推荐
相关产品推荐

