如何在PowerBI中合并3个成绩表与查找表,生成带空值的可筛选成绩表?
PowerBI 实现指定学年学期的学生多科成绩展示(含空值)
1. 确认数据模型关联
- 保证查找表
tbl_pupils、tbl_year、tbl_term分别与tbl_maths、tbl_english、tbl_science建立一对多关系,关联字段对应学生ID、学年ID、学期ID。 - 关系筛选方向设置为单向(查找表筛选成绩表),确保切片器的筛选能传递到成绩表。
2. 创建各科成绩度量值(处理空值)
直接使用成绩表的分数列会导致无成绩的学生不显示,因此需要通过DAX度量值返回空值而非隐藏记录:
英语成绩 = VAR SelectedYear = SELECTEDVALUE(tbl_year[学年]) VAR SelectedTerm = SELECTEDVALUE(tbl_term[学期]) RETURN CALCULATE( MAX(tbl_english[分数]), tbl_year[学年] = SelectedYear, tbl_term[学期] = SelectedTerm )
数学成绩 = VAR SelectedYear = SELECTEDVALUE(tbl_year[学年]) VAR SelectedTerm = SELECTEDVALUE(tbl_term[学期]) RETURN CALCULATE( MAX(tbl_maths[分数]), tbl_year[学年] = SelectedYear, tbl_term[学期] = SelectedTerm )
科学成绩 = VAR SelectedYear = SELECTEDVALUE(tbl_year[学年]) VAR SelectedTerm = SELECTEDVALUE(tbl_term[学期]) RETURN CALCULATE( MAX(tbl_science[分数]), tbl_year[学年] = SelectedYear, tbl_term[学期] = SelectedTerm )
注:使用MAX是因为每个学生在指定学年学期的单科目成绩唯一,无成绩时CALCULATE会返回BLANK()(空值)
3. 构建报表可视化
- 插入两个切片器,分别绑定
tbl_year[学年]和tbl_term[学期],用于选择目标学年与学期。 - 插入表可视化组件,添加字段:
tbl_pupils[学生姓名],以及上述三个度量值「英语成绩」「数学成绩」「科学成绩」。
4. 调整显示设置
- 若表中空值显示异常,可在可视化格式选项中设置「空值显示」为空白。
- 按需修改列标题,比如将度量值名称改为「英语」「数学」「科学」。
内容的提问来源于stack exchange,提问作者petworthnick
相关产品推荐
相关产品推荐

