cancel
Showing results for
Did you mean:
Highlighted
kk1791 Regular Visitor

## 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 keep the index in ascending order in the formula in order to avoid comparing values with different dates and time. The logic for output.
1 ) If height2 <> height 1 -> than result "D"
2)If height2 = height 1, then compare color, if color2 <> color 1 -> than result "B"
3)If height2 = height1 and color 2 =color1, then compare size, if size2 <> size 1 -> than result "A"
4)If everything are same than "M"

1 ACCEPTED SOLUTION

Accepted Solutions Community Support Team

## Re: Nested If to compare previous row value

Hi @kk1791 ,

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.

2 REPLIES 2
Wkeith Regular Visitor

## Re: Nested If to compare previous row value

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. Community Support Team

## Re: Nested If to compare previous row value

Hi @kk1791 ,

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.

Announcements #### Meet the 2020 Season 1 Power BI Super Users!

It’s the start of a new Super User season! Learn all about the new Super Users and brand-new tiered recognition system. #### Super User Challenge: Can You Solve These?

We're celebrating the start of the New Super User season with our first ever Super User 'Can You Solve These?' challenge. #### Power BI Desktop Update - February 2020

We are super excited for our update this month, as we are releasing two of our top community requests! #### Power Platform Online Conference 