如何在Power BI Desktop中计算分组表格的行间时间差异
实现方案
1. 前置准备
确保你的数据表(假设表名为青少年铁三成绩)包含以下核心字段:学生ID(或唯一标识学生的字段)、记录日期、各项目时间列(如游泳时间、自行车时间、跑步时间),且记录日期列已按升序排序。
2. 创建计算列(以游泳时间差值为例)
使用DAX编写计算列,实现同一学生当前记录与上一次记录的时间差,首行差值设为0:
游泳时间差值 = VAR 当前学生 = '青少年铁三成绩'[学生ID] VAR 当前记录日期 = '青少年铁三成绩'[记录日期] VAR 上一次记录日期 = CALCULATE( MAX('青少年铁三成绩'[记录日期]), FILTER( '青少年铁三成绩', '青少年铁三成绩'[学生ID] = 当前学生 && '青少年铁三成绩'[记录日期] < 当前记录日期 ) ) VAR 上一次游泳时间 = CALCULATE( MAX('青少年铁三成绩'[游泳时间]), FILTER( '青少年铁三成绩', '青少年铁三成绩'[学生ID] = 当前学生 && '青少年铁三成绩'[记录日期] = 上一次记录日期 ) ) RETURN IF(ISBLANK(上一次记录日期), 0, '青少年铁三成绩'[游泳时间] - 上一次游泳时间)
3. 适配其他项目
将上述公式中的游泳时间替换为自行车时间、跑步时间,即可生成对应项目的时间差值列。
4. 矩阵报表使用
创建矩阵时:
- 行字段选择
学生ID/学生姓名 - 列字段选择
记录日期 - 值字段添加各项目的原始时间和差值列
- 差值判断规则:负数表示当前项目时间比上次缩短,选手进步;正数则表示时间变长
特殊情况处理
如果同一学生在同一天有多条记录,需新增记录序号字段(按当日记录先后排序),并在DAX公式的筛选条件中加入记录序号 < 当前记录序号,确保取到真正的上一次记录。
内容的提问来源于stack exchange,提问作者James Fell
相关产品推荐
相关产品推荐

