Forum Discussion
Anonymous
7 years agoNot applicable
Nested If to compare previous row value
Hello, Can anyone help me with the logic for creating nested IF statement in powerbi to get the output like below? I have already created an index based on date and time but I don't know how to kee...
- 7 years ago
Hi Anonymous ,
The following is a measure I created. And you can reference it to have a try.
Measure = var mi = MAX(Table1[Index]) var hei = CALCULATE(MAX(Table1[HEIGHT]),FILTER(ALLEXCEPT(Table1,Table1[DATE]),Table1[Index] = mi -1)) var col = CALCULATE(MAX(Table1[COLOR]),FILTER(ALLEXCEPT(Table1,Table1[DATE]),Table1[Index] = mi -1)) var size = CALCULATE(MAX(Table1[SIZE]),FILTER(ALLEXCEPT(Table1,Table1[DATE]),Table1[Index] = mi -1)) return IF(mi -1 = 0,BLANK(),IF(MAX(Table1[HEIGHT]) = hei , IF(MAX(Table1[COLOR]) = col, IF(MAX(Table1[SIZE]) = size, "M","A"),"B"),"D"))
Best Regards,
Xue Ding
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Wkeith
7 years agoHelper II
New to dax and thought I would help you out. This formula is super long and I'm sure there is an easier and simplified way to write this formula but this got the results that you want.
Create a new calculated column with this following logic:
Column = IF(Sheet1[Index]=1,"", if(CALCULATE(max(Sheet1[Height]),filter(Sheet1,Sheet1[Index]<earlier(Sheet1[Index],1)))<>Sheet1[Height], "D",if(and(CALCULATE(max(Sheet1[Height]),filter(Sheet1,Sheet1[Index]<earlier(Sheet1[Index],1)))=Sheet1[Height],LOOKUPVALUE(Sheet1[Color],Sheet1[Index],CALCULATE(max(Sheet1[Index]),filter(Sheet1,Sheet1[Index]<earlier(Sheet1[Index],1))))<>Sheet1[Color]),"B",if(CALCULATE(max(Sheet1[Height]),filter(Sheet1,Sheet1[Index]<earlier(Sheet1[Index],1)))=Sheet1[Height] && LOOKUPVALUE(Sheet1[Color],Sheet1[Index],CALCULATE(max(Sheet1[Index]),filter(Sheet1,Sheet1[Index]<earlier(Sheet1[Index],1))))=Sheet1[Color] && LOOKUPVALUE(Sheet1[Size],Sheet1[Index],CALCULATE(max(Sheet1[Index]),filter(Sheet1,Sheet1[Index]<earlier(Sheet1[Index],1))))<>Sheet1[Size],"A","M"))))
Would love someone else to clean it up and teach me how to do it more efficiently! Hope this works.