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
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
Super User
Super User

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.


@ 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!:
The Definitive Guide to Power Query (M)

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
Super User
Super User

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.


@ 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!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

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