Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
MrDarian
Helper II
Helper II

Previous row by DAX

I need a DAX Code for calculating Previous row. points:

1. For the first one amount for each program id, it must be 100% because it has not any data before

2. Ralations: One program ID> many task ID -- One Task ID> many Sub task ID -- One task ID> one amount

3. calculate ratio based on previous row in each program ID

like image below:

Capture.PNG

 

Power BI File Link for download: https://gofile.io/d/oOa25R

 

------

@V-pazhen-msft 

1 ACCEPTED SOLUTION
harshnathani
Community Champion
Community Champion

Hi @MrDarian ,

 

I think there are multiple threads opened to this question.

 

Pleae find the solution.

 

RatioMeasure =

var _minsub = CALCULATE(MIN('Table'[Sub ID ]), FILTER(ALL('Table'),'Table'[PID]= MAX('Table'[PID]) && 'Table'[ID] = MAX('Table'[ID])))
var _maxsubid = CALCULATE(MIN('Table'[Amount]),FILTER(ALL('Table'),'Table'[PID]= MAX('Table'[PID]) && 'Table'[ID] = MAX('Table'[ID])-1 && 'Table'[Sub ID ] = MAXX(ALL('Table'),'Table'[Sub ID ])))
var _previousamount = CALCULATE(MAX('Table'[Amount]), FILTER(ALL('Table'),'Table'[PID]= MAX('Table'[PID])&&'Table'[ID] = MAX('Table'[ID]) && 'Table'[Sub ID ] = MAX( 'Table'[Sub ID ]) -1))

RETURN
SWITCH(
TRUE(),
 
MAX('Table'[Sub ID ]) = _minsub && MAX('Table'[ID]) = MINX(ALL('Table'[ID]),'Table'[ID]), DIVIDE(MAX('Table'[Amount]),MAX('Table'[Amount])),
MAX('Table'[Sub ID ]) = _minsub, DIVIDE(MAX('Table'[Amount]),_maxsubid),
DIVIDE(MAX('Table'[Amount]),_previousamount)
)
 
 
Regards,
Harsh Nathani

View solution in original post

1 REPLY 1
harshnathani
Community Champion
Community Champion

Hi @MrDarian ,

 

I think there are multiple threads opened to this question.

 

Pleae find the solution.

 

RatioMeasure =

var _minsub = CALCULATE(MIN('Table'[Sub ID ]), FILTER(ALL('Table'),'Table'[PID]= MAX('Table'[PID]) && 'Table'[ID] = MAX('Table'[ID])))
var _maxsubid = CALCULATE(MIN('Table'[Amount]),FILTER(ALL('Table'),'Table'[PID]= MAX('Table'[PID]) && 'Table'[ID] = MAX('Table'[ID])-1 && 'Table'[Sub ID ] = MAXX(ALL('Table'),'Table'[Sub ID ])))
var _previousamount = CALCULATE(MAX('Table'[Amount]), FILTER(ALL('Table'),'Table'[PID]= MAX('Table'[PID])&&'Table'[ID] = MAX('Table'[ID]) && 'Table'[Sub ID ] = MAX( 'Table'[Sub ID ]) -1))

RETURN
SWITCH(
TRUE(),
 
MAX('Table'[Sub ID ]) = _minsub && MAX('Table'[ID]) = MINX(ALL('Table'[ID]),'Table'[ID]), DIVIDE(MAX('Table'[Amount]),MAX('Table'[Amount])),
MAX('Table'[Sub ID ]) = _minsub, DIVIDE(MAX('Table'[Amount]),_maxsubid),
DIVIDE(MAX('Table'[Amount]),_previousamount)
)
 
 
Regards,
Harsh Nathani

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors