Forum Discussion
DAX function to get previous row value grouped by another column
- 1 year ago
luckygirl Try this:
Previous Product Detail Column = VAR __Code = [ClientCode] VAR __Date = [CompletedDate] VAR __Table = FILTER( ALL( 'Table' ), [ClientCode] = __Code && [CompletedDate] < __Date ) VAR __PrevDate = MAXX( __Table, [CompletedDate] ) VAR __Result = MAXX( FILTER( __Table, [CompletedDate] = __PrevDate ), [ProductDetail] ) RETURN __Result or Previous Product Detail Measure = VAR __Code = MAX( 'Table'[ClientCode] ) VAR __Date = MAX( 'Table'[CompletedDate] ) VAR __Table = FILTER( ALL( 'Table' ), [ClientCode] = __Code && [CompletedDate] < __Date ) VAR __PrevDate = MAXX( __Table, [CompletedDate] ) VAR __Result = MAXX( FILTER( __Table, [CompletedDate] = __PrevDate ), [ProductDetail] ) RETURN __ResultSee my article on Mean Time Between Failure (MTBF) which uses EARLIER: http://community.powerbi.com/t5/Community-Blog/Mean-Time-Between-Failure-MTBF-and-Power-BI/ba-p/339586.
The basic pattern is:
Column =
VAR __Current = [Value]
VAR __PreviousDate = MAXX(FILTER('Table','Table'[Date] < EARLIER('Table'[Date])),[Date])
VAR __Previous = MAXX(FILTER('Table',[Date]=__PreviousDate),[Value])
RETURN
( __Current - __Previous ) * 1.
luckygirl Try this:
Previous Product Detail Column =
VAR __Code = [ClientCode]
VAR __Date = [CompletedDate]
VAR __Table = FILTER( ALL( 'Table' ), [ClientCode] = __Code && [CompletedDate] < __Date )
VAR __PrevDate = MAXX( __Table, [CompletedDate] )
VAR __Result = MAXX( FILTER( __Table, [CompletedDate] = __PrevDate ), [ProductDetail] )
RETURN
__Result
or
Previous Product Detail Measure =
VAR __Code = MAX( 'Table'[ClientCode] )
VAR __Date = MAX( 'Table'[CompletedDate] )
VAR __Table = FILTER( ALL( 'Table' ), [ClientCode] = __Code && [CompletedDate] < __Date )
VAR __PrevDate = MAXX( __Table, [CompletedDate] )
VAR __Result = MAXX( FILTER( __Table, [CompletedDate] = __PrevDate ), [ProductDetail] )
RETURN
__Result
See my article on Mean Time Between Failure (MTBF) which uses EARLIER: http://community.powerbi.com/t5/Community-Blog/Mean-Time-Between-Failure-MTBF-and-Power-BI/ba-p/339586.
The basic pattern is:
Column =
VAR __Current = [Value]
VAR __PreviousDate = MAXX(FILTER('Table','Table'[Date] < EARLIER('Table'[Date])),[Date])
VAR __Previous = MAXX(FILTER('Table',[Date]=__PreviousDate),[Value])
RETURN
( __Current - __Previous ) * 1.