首页 > 解决方案 > 用于查找最后一条记录的 PowerBI DAX

问题描述

问题

什么是创建计算列的有效方法,使用该列查找我的列的最后一个DATE值?我不想要 MAX 日期,只想要最后一条记录(即使最后一条记录是最小值)。另外,我的表是一个计算列。ModifiedOnID

示例表

ID DATE 修改时间

2020 年 2 月 4 日 2019 年 1 月 16 日

2020 年 2 月 5 日 2019 年 1 月 17 日

B 2020 年 3 月 2 日 2020 年 2 月 7 日

B 2020 年 3 月 3 日 2020 年 2 月 8 日

B 2020 年 3 月 1 日 2020 年 2 月 9 日

当前公式

LastRecord = 
VAR Max_Date =
CALCULATE (
    MAX ( 'Table1'[ModifiedOn] ),
    ALLEXCEPT ( 'Table1', 'Table1'[ID] )
 )

RETURN
IF (
    Table1[ModifiedOn] = Max_Date,
    Table1[DATE]
    )

当前结果

但是使用该公式,我得到一个如下所示的计算列:我一直在空白处填写该 ID 的最后记录日期。 在此处输入图像描述

标签: powerbidax

解决方案


使用以下 dax 公式创建预期的列:

Column = 
VAR __id = 'Table'[ID]
VAR __lastMod = 
    CALCULATE( 
        MAX( 'Table'[ModifiedOn] ),
        FILTER( 'Table', 'Table'[ID] = __id )
    )

VAR __lastDate =
    CALCULATE(
        MAX( 'Table'[Date] ),
        FILTER( 'Table', 'Table'[ID] = __id && 'Table'[ModifiedOn] = __lastMod )
    )

Return __lastDate

推荐阅读