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

Compete to become Power BI Data Viz World Champion! First round ends August 18th. Get started.

Reply
Awikant
Regular Visitor

How to make a calculated column of time between purchases of the same product, by the same costumer?

I am trying to make Power BI search for any identical rows, except for the "date/time" values, and report the time between them in a new column. So i want new column that calculate the time between two rows (by the difference in a "Time/Date" column), provided that several other values are identical (e.g. same costumer-ID, same product, same store) IF such rows exists.

 

In other words, if the costumer-ID, product-ID and Store-ID are the same as in an earlier row, calculate the time (e.g. days, months or years) that has past since the earlier row. In the example table below, i would like to have the calculated column return a value only in row 4 (the time difference between row 1 and row 4). 

 

IndexTime/dateCostumer_IDproduct_ID
125.03.20051D
226.03.20052B
329.03.20051A
404.04.20051D

 

Any ideas?

1 ACCEPTED SOLUTION
Greg_Deckler
Community Champion
Community Champion

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/3395.... You have essentially the same scenario.



Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
DAX For Humans

DAX is easy, CALCULATE makes DAX hard...

View solution in original post

2 REPLIES 2
Mariusz
Community Champion
Community Champion

Hi @Awikant 

 

You can add a column like below.

column = 
VAR __thisRowDate = 'Table'[Time/date]
VAR __previousDate =
    CALCULATE(
        MAX( 'Table'[Time/date] ),
        ALLEXCEPT( 'Table', 'Table'[Costumer_ID], 'Table'[product_ID] ),
        'Table'[Time/date] < __thisRowDate   
    )
RETURN IF( __previousDate > 0, __thisRowDate - __previousDate )

 

Best Regards,
Mariusz

If this post helps, then please consider Accepting it as the solution.

 

Greg_Deckler
Community Champion
Community Champion

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/3395.... You have essentially the same scenario.



Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
DAX For Humans

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
August Power BI Update Carousel

Power BI Monthly Update - August 2025

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

August 2025 community update carousel

Fabric Community Update - August 2025

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