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

在Power BI中计算逐年留存率并生成趋势图的方法

逐年留存率计算与Power BI可视化实现方案

一、明确留存率计算逻辑

这里采用两种常用的留存率计算逻辑,可根据实际场景选择:

  1. 同期群(Cohort)留存率:某一届入学的学生,在入学后第N年仍在校的比例(默认假设学制为4年,即学生在校4年、第4年毕业)
  2. 年度整体留存率:当年总在读人数与上一年总在读人数的比值

二、数据准备

  1. 导入基础数据:在Power BI中创建入学数据表,结构如下:
    入学年份入学人数
    20171137
    20181128
    20191002
    20201063
    2021763
  2. 创建年份维度表:通过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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:15:39