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

PowerBI中无需双向筛选,按讲师聚合学分与学生数的方法

PowerBI多层级表聚合统计:无需双向筛选的实现方案

数据模型与需求

现有三张关联表

  1. Courses表(课程主表)
Course IDCourse credits
C12
C23
  1. Practical Courses表(实践课程表,事实表)
Practical Course IDCourse IDYearNumber of Students
C1.22C1202210
C1.23C1202315
C2.21C2202117
  1. Practical course lecturers表(讲师表)
Lecturer namePractical Course ID
JackC1.22
JackC1.23
JillC1.22
JillC2.21

关联规则与统计需求

  • 关联逻辑:一门课程对应多个实践课程,一个实践课程对应多个讲师
  • 统计需求:计算每位讲师的总学分和总学生数,目标结果如下:
Lecturer nameCreditsStudents
Jack425
Jill527

当前困境

当前数据模型默认筛选方向为单向(维度表→事实表),无法通过讲师表反向筛选Courses表完成聚合。此前参考过相关线程的两个方案,但均不适用:

  1. 使用CROSSFILTER定义临时筛选:多层级场景下需多次设置,操作繁琐
  2. 利用事实表公共字段:Courses表与讲师表无直接公共字段,无法直接关联

无需双向筛选的解决方案

使用DAX迭代函数,通过遍历关联表传递筛选上下文,无需修改模型筛选方向。

1. 讲师总学分DAX公式

讲师总学分 = 
SUMX (
    RELATEDTABLE('Practical Courses'), // 获取当前讲师关联的所有实践课程
    RELATED('Courses'[Course credits]) // 关联对应课程学分并累加
)

2. 讲师总学生数DAX公式

讲师总学生数 = 
SUMX (
    RELATEDTABLE('Practical Courses'),
    'Practical Courses'[Number of Students] // 累加关联实践课程的学生数
)

原理说明

  • RELATEDTABLE('Practical Courses'):基于当前讲师的筛选上下文,返回所有关联的实践课程记录
  • RELATED('Courses'[Course credits]):通过实践课程与Courses表的关联,获取对应课程的学分值
  • 全程通过迭代函数在讲师的筛选范围内,逐层关联取数并聚合,无需开启双向筛选

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:45:34