Power BI矩阵报表:如何避免双向筛选实现讲师-课程类别统计
无需双向筛选的Power BI数据模型方案
正确的单向关系模型
先调整数据模型的关系,全部使用单向一对多筛选(符合Power BI最佳实践,避免双向筛选带来的性能损耗与筛选逻辑混乱):
- 课程类别表(Course category)与课程名称表(Course names):通过
Course Id建立一对多关系,筛选方向设为从课程类别到课程名称(类别可筛选课程,课程无法反向筛选类别) - 课程名称表(Course names)与课程讲师表(Course lecturers):通过
Course Id建立一对多关系,筛选方向设为从课程名称到课程讲师(课程可筛选讲师,讲师无法反向筛选课程)
核心度量值实现需求
创建以下DAX度量值,计算每位讲师在对应课程类别下的去重课程数量:
Distinct Courses by Category = VAR LecturerCourses = VALUES('Course lecturers'[Course Id]) VAR CategoryRelatedCourses = CALCULATETABLE(VALUES('Course names'[Course ID]), 'Course category') RETURN COUNTROWS(INTERSECT(LecturerCourses, CategoryRelatedCourses))
度量值逻辑说明:
LecturerCourses:提取当前行上下文(对应讲师)所教授的所有课程ID集合CategoryRelatedCourses:提取当前列上下文(对应课程类别)覆盖的所有课程ID集合INTERSECT:取两个集合的交集,即该讲师教授的且属于当前类别的课程,最后用COUNTROWS完成去重计数
报表配置
在矩阵报表中进行如下设置:
- 行维度:选择
Course lecturers[Lecturer name] - 列维度:选择
Course category[Course category] - 值字段:添加上述创建的
Distinct Courses by Category度量值
最终生成的报表会完全匹配你的预期结果,且全程无需依赖双向筛选。
内容的提问来源于stack exchange,提问作者Shaharg
相关产品推荐
相关产品推荐

