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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Anonymous
Not applicable

Calculated Column based on row diff

Hello,

 

I have a custom dataset as shown below and I am looking for a calculated column called "Price change" which do the following operation,

 

For the same material, look for the valid_to date and if it is the first valid date then price change is 0 else diff of the price.

 


Material      valid_from        valid_to           price     Pricechange
16558          5/20/2018        10/20/2018      12           0
16558          10/21/2018     12/21/2018      10          -2
16558          12/22/2018      12/31/9999      14          4
16559          6/21/2018        10/22/2018      12         0
16559          10/23/2018      12/31/9999       10        -2

 

 

Thanks in advance.

2 ACCEPTED SOLUTIONS
Ashish_Mathur
Super User
Super User

Hi,

This calculated column formula work

=if(ISBLANK(LOOKUPVALUE(Data[Price],[Material],Data[Material],Data[Valid_from],CALCULATE(MAX(Data[Valid_from]),FILTER(Data,Data[Material]=EARLIER(Data[Material])&&Data[Valid_from]<EARLIER(Data[Valid_from]))))),0,[Price]-LOOKUPVALUE(Data[Price],[Material],Data[Material],Data[Valid_from],CALCULATE(MAX(Data[Valid_from]),FILTER(Data,Data[Material]=EARLIER(Data[Material])&&Data[Valid_from]<EARLIER(Data[Valid_from])))))

Hope this helps.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

View solution in original post

Anonymous
Not applicable

Thank you very much...It worked like a charm.

View solution in original post

3 REPLIES 3
Ashish_Mathur
Super User
Super User

Hi,

This calculated column formula work

=if(ISBLANK(LOOKUPVALUE(Data[Price],[Material],Data[Material],Data[Valid_from],CALCULATE(MAX(Data[Valid_from]),FILTER(Data,Data[Material]=EARLIER(Data[Material])&&Data[Valid_from]<EARLIER(Data[Valid_from]))))),0,[Price]-LOOKUPVALUE(Data[Price],[Material],Data[Material],Data[Valid_from],CALCULATE(MAX(Data[Valid_from]),FILTER(Data,Data[Material]=EARLIER(Data[Material])&&Data[Valid_from]<EARLIER(Data[Valid_from])))))

Hope this helps.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
Anonymous
Not applicable

Thank you very much...It worked like a charm.

You are welcome.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.