Power BI中如何用DAX按ID取最新日期对应Points生成新列?
基于DAX实现按ID保留最新日期对应Points值的新列
你可以直接在Power BI的数据视图中新建计算列,使用以下DAX表达式(注意把'你的表名'替换成实际的表格名称):
What I want = VAR LatestDate = CALCULATE(MAX('你的表名'[LogCreationDate]), ALLEXCEPT('你的表名', '你的表名'[ID])) RETURN IF('你的表名'[LogCreationDate] = LatestDate, '你的表名'[Points], BLANK())
公式逻辑说明
VAR LatestDate:定义变量,通过ALLEXCEPT函数保留当前行的ID上下文,计算该ID对应的最大(最新)LogCreationDateIF判断:如果当前行的LogCreationDate等于该ID的最新日期,返回对应的Points值;否则返回BLANK()(对应示例中的null)
示例验证
以下是你的示例数据应用公式后的效果:
| ID | LogCreationDate | Points | What I want |
|---|---|---|---|
| 1001 | 12-Oct-2022 | 5 | null |
| 1001 | 17-Oct-2022 | 2 | 2 |
| 1001 | 13-Oct-2022 | 7 | null |
| 1001 | 07-Aug-2022 | 2 | null |
| 1002 | 03-Sept-2022 | 2.1 | null |
| 1002 | 22-Sept-2022 | 5 | null |
| 1002 | 04-Oct-2022 | 1 | 1 |
| 1002 | 01-Aug-2022 | 1.2 | null |
| 1003 | 05-Nov-2022 | 3.5 | 3.5 |
| 1003 | 01-Nov-2022 | 6.6 | null |
内容的提问来源于stack exchange,提问作者Kitty
相关产品推荐
相关产品推荐

