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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
eliasayyy
Memorable Member
Memorable Member

find datediff between date and direct next date with user filter

hello everyone, i have a table, 
"transaction table"

i made a table visual that has transaction date and nb  of transactions made

as a filter slicer, i have userID

here is an example

eliasayyy_0-1705415663981.png


i need to add a new measure that will calculate the dattdif between each row of date

so for first row 0 becasue there is no previous date

then from first row to second row

there is 30 days almost so 30 days

then between second row and third row there is a diff of 1 day

..

after that i need to find the average so i can know how much this customer returns on average

So if we only take the first 2 calcultaions

30 + 1 = 31/2 = 15 days average



1 ACCEPTED SOLUTION
Dangar332
Super User
Super User

hi, @eliasayyy 

try below

Measure 16 = 
var a  = ADDCOLUMNS(
    ALL('transaction table'[transaction date],'transaction table'[transaction],'transaction table'[userid]),
    "datediff",
    var a = 'transaction table'[transaction date]
    var b =
         MINX(
           FILTER(
              'transaction table',
              'transaction table'[userid]=EARLIER('transaction table'[userid]) &&
              'transaction table'[transaction date]>a
            ),
              'transaction table'[transaction date]
        )
    var c= IF(b=BLANK(),a,b)
    RETURN
    DATEDIFF('transaction table'[transaction date],c,DAY)
)
RETURN
AVERAGEX(FILTER(a,'transaction table'[transaction date]<=MAX('transaction table'[transaction date])),[datediff])

 

Dangar332_1-1705426012813.png

 

View solution in original post

1 REPLY 1
Dangar332
Super User
Super User

hi, @eliasayyy 

try below

Measure 16 = 
var a  = ADDCOLUMNS(
    ALL('transaction table'[transaction date],'transaction table'[transaction],'transaction table'[userid]),
    "datediff",
    var a = 'transaction table'[transaction date]
    var b =
         MINX(
           FILTER(
              'transaction table',
              'transaction table'[userid]=EARLIER('transaction table'[userid]) &&
              'transaction table'[transaction date]>a
            ),
              'transaction table'[transaction date]
        )
    var c= IF(b=BLANK(),a,b)
    RETURN
    DATEDIFF('transaction table'[transaction date],c,DAY)
)
RETURN
AVERAGEX(FILTER(a,'transaction table'[transaction date]<=MAX('transaction table'[transaction date])),[datediff])

 

Dangar332_1-1705426012813.png

 

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.