在Power BI中计算逐年留存率并生成趋势图的方法
逐年留存率计算与Power BI可视化实现方案
一、明确留存率计算逻辑
这里采用两种常用的留存率计算逻辑,可根据实际场景选择:
- 同期群(Cohort)留存率:某一届入学的学生,在入学后第N年仍在校的比例(默认假设学制为4年,即学生在校4年、第4年毕业)
- 年度整体留存率:当年总在读人数与上一年总在读人数的比值
二、数据准备
- 导入基础数据:在Power BI中创建
入学数据表,结构如下:入学年份 入学人数 2017 1137 2018 1128 2019 1002 2020 1063 2021 763 - 创建年份维度表:通过DAX生成独立年份表用于关联计算:
无需建立年份表 = SELECTCOLUMNS(CALENDAR(DATE(2017,1,1), DATE(2021,1,1)), "年份", YEAR([Date]))入学数据与年份表的直接关联,后续通过DAX筛选实现计算。
三、DAX度量值计算
1. 年度总在读人数
基于学制4年的假设,计算每个年份的在校学生总数:
年度在读人数 = VAR 当前年份 = SELECTEDVALUE('年份表'[年份]) RETURN SUMX( FILTER( '入学数据', '入学数据'[入学年份] <= 当前年份 && '入学数据'[入学年份] + 3 >= 当前年份 ), '入学数据'[入学人数] )
2. 年度整体留存率
计算当年在读人数相对上一年的留存比例:
年度整体留存率 = VAR 当前在读 = [年度在读人数] VAR 上年在读 = CALCULATE([年度在读人数], '年份表'[年份] = SELECTEDVALUE('年份表'[年份]) - 1) RETURN IF(上年在读 = 0, BLANK(), DIVIDE(当前在读, 上年在读))
3. 单届同期群留存率
计算某一届学生在各年份的留存比例(无辍学数据时默认100%在校,有流失数据可替换在校人数逻辑):
单届留存率 = VAR 目标届别 = SELECTEDVALUE('入学数据'[入学年份]) VAR 当前年份 = SELECTEDVALUE('年份表'[年份]) VAR 届别入学人数 = SELECTEDVALUE('入学数据'[入学人数]) VAR 届别在校人数 = IF(当前年份 BETWEEN(目标届别, 目标届别 + 3), 届别入学人数, 0) RETURN IF(届别入学人数 = 0, BLANK(), DIVIDE(届别在校人数, 届别入学人数))
四、可视化图表制作
1. 年度整体留存率趋势图
- 操作:将
年份表[年份]拖至X轴,年度整体留存率拖至Y轴,选择折线图或柱状图 - 优化:将Y轴格式设为百分比,添加数据标签,清晰展示每年留存变化
2. 同期群留存矩阵图
- 操作:将
入学数据[入学年份]拖至行,年份表[年份]拖至列,单届留存率拖至值区域,选择矩阵图 - 优化:将值格式设为百分比,可添加条件格式(如颜色渐变)突出留存差异
自定义调整说明
- 若学制不同(如3年),只需修改DAX中
入学年份 + 3的数字(改为+2) - 若有辍学/流失数据,可在
入学数据表添加对应年份的在校人数列,替换度量值中的入学人数为实际在校人数即可
内容的提问来源于stack exchange,提问作者Harpreet Kaur
相关产品推荐
相关产品推荐

