powerbi - Power BI 按组检索最后一列值
问题描述
我在控制我公司的一些 kpi 的仪表板中工作。现在,我需要根据员工编号将每个结果与前一个结果进行比较。在下面的示例中,我展示了我的数据的一个小示例,以及最后一列中的预期结果(之前的分数)。我尝试使用很多 os 计算列来解决这个问题。我使用以下方法接近了:
PreviousScore =
VAR EMPNUMBER = BASE[Employee Number]
VAR REF = BASE[Score]
RETURN
CALCULATE(LASTNONBLANK(BASE[Employee Number];EMPNUMBER);FILTER(BASE;BASE[Employee Number]=EMPNUMBER);FILTER(BASE;BASE[Date]<EARLIER(BASE[Date])))
员工编号 日期 分数 以前的分数
1234 01/01/2019 1 空白
1235 01/01/2019 4 空白
1236 01/01/2019 2 空白
1288 01/01/2019 0 空白
1259 01/01/2019 0 空白
1234 2019 年 1 月 2 日 3 1
1235 2019 年 1 月 2 日 4 4
1236 2019 年 1 月 2 日 1 2
1288 2019 年 1 月 2 日 2 0
1259 2019 年 1 月 2 日 4 0
1234 2019 年 1 月 3 日 1 3
1235 2019 年 1 月 3 日 2 4
1236 2019 年 1 月 3 日 3 1
1288 01/03/2019 0 2
1259 2019 年 1 月 3 日 1 4
1234 2019 年 1 月 4 日 2 1
1235 2019 年 1 月 4 日 3 2
1236 2019 年 1 月 4 日 8 3
1288 01/04/2019 空白 0
1259 01/04/2019 空白 1
我希望有人可以帮助解决这个问题。
长宽
解决方案
您的日期之间没有依赖关系,您选择了较早的列,并且意外地它们的顺序正确。
以下查询将为您提供正确的结果:
Previous score =
var empNR = score[Employee Number]
var theDate = score[Date]
var empData = FILTER(score;score[Employee Number] = empNR)
var prevDate = CALCULATE(MAX(score[Date]);empData;score[Date] < theDate)
return CALCULATE(MAX(score[Score]);FILTER(empData; score[Date] = prevDate))
- 我过滤 emp 号码以获取该员工的数据
- 我通过获取低于所选日期的所有日期的最大值来获得 prevDate
- 最后一步是获取一行并返回分数
推荐阅读
- c# - 如何使用正则表达式重复匹配模式
- python - 如何使用 2D numpy 数组制作密度散点图?
- javascript - 验证月份
- android - Jacoco:通过 Jenkins 在外部 maven 代码上运行 JaCoCo 可执行文件以进行 android 测试
- identityserver4 - 如何有效地在每次调用 API 时从 IdentityServer4 接收的授权标头中设置访问令牌
- typescript - 如何将当前时间设置为 Date 对象
- c - 是否可以忽略部分 sscanf 输入字符串
- javascript - 在感谢页面上获取可变总价
- python - geopandas 和 sf 怎么可能为同一个文件提供不同的汇总统计输出?
- excel - 在 Excel 中查找、查找、匹配和替换单元格,需要帮助或建议