cancel
Showing results for
Did you mean:

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Frequent Visitor

## Date difference between values in same column

Hi everyone!

I'm still learning DAX and I was wondering if the collective minds of this forum could help me out with coding a custom column that I've been having difficulty with. I feel like my issue is relatively simple, but I haven't come across any posts on this forum which relate.

I'm trying to code a custom column which generates the number of days between two dates. The two dates are located in the same column, and I want to find the number of days between two chronologically adjacent dates when there are multiple date values - eg. the number of days between date 1 and date 2, date 2 and date 3, date 3 and date 4, etc. (when date 1 is the earliest date and date 4 is the latest date). This needs to be done for each unique patient ID value.

I've included a mock-up of what I'm trying to accomplish below.

This is what it currently looks like.This is what I want it to look like.

I'd appreciate any help I can get. Thank you!

1 ACCEPTED SOLUTION
Community Champion

@mblydt-hansen

You could use this calculated column

```Column =
VAR temp =
TOPN (
1,
FILTER (
Table1,
Table1[Patient ID] = EARLIER ( Table1[Patient ID] )
&& Table1[Date of Visit] < EARLIER ( Table1[Date of Visit] )
),
[Date of Visit], DESC
)
RETURN
DATEDIFF ( MINX ( temp, [Date of Visit] ), Table1[Date of Visit], DAY )```

Regards
Zubair

13 REPLIES 13
New Member

Hi All,

I'm looking for a support.

I want to calculate number of days between first and last date in the same column where I'm having multiple same ID entries with multiple dates

Can I get support with the DAX function logic? 🙏

Helper I

@Zubair_Muhammad is there any way of adding another perameter in your formula to only count the daydiff between the Closed Won opportunities

Community Champion

@mblydt-hansen

You could use this calculated column

```Column =
VAR temp =
TOPN (
1,
FILTER (
Table1,
Table1[Patient ID] = EARLIER ( Table1[Patient ID] )
&& Table1[Date of Visit] < EARLIER ( Table1[Date of Visit] )
),
[Date of Visit], DESC
)
RETURN
DATEDIFF ( MINX ( temp, [Date of Visit] ), Table1[Date of Visit], DAY )```

Regards
Zubair

Anonymous
Not applicable

Nearly 5 years later this answer got me out of a jam, thanks so much!

New Member

Hello Zubair,

I have similar requirement just that in first column i have user name instead of user id but the solution is not working for me. 7th and 8th line of formula below is not accepting parameter after EARLIER. Please advise

``` Table1[Patient ID] = EARLIER ( Table1[Patient ID] )
&& Table1[Date of Visit] < EARLIER ( Table1[Date of Visit] )```

Regards,

Kriti

Anonymous
Not applicable

Hi there,

Do you have any advise for my issue?

This code works to get the same output for my dataset, however I need the 'number of days since last visit' to become 'days until next visit'. Essentially meaning all values move up by 1 row. So in the example above the result '5' moves from row 3 to row 2. This is because I have a further column to consider of 'treatment type' per patient ID and need to be able to graphically present the mean time until next visit per treatment type, so I need the 'days until next visit' result in the same row as 'treatment type.'

Frequent Visitor

Unlike many accepted solutions in the whole forum.

This actually works.

Thanks, Zubair for sharing your knowledge.

Anonymous
Not applicable

Hi,

I have a similar problem. I have 3 columns, one with different products IDs, one with different status and one with dates, which replicate lines adding one day until the product status changes. So I want to calculate the difference between the max date and min date for determined product ID and status.

I applied something similar:

Column =
VAR temp =
TOPN (
1,
FILTER (
Teste,
Teste[Work Item Id] = EARLIER ( Teste[Work Item Id] ) && Teste[State] = EARLIER ( Teste[State] )
&& Teste[Date] < EARLIER ( Teste[Date] )
),
[Date], DESC
)
RETURN
DATEDIFF ( MINX ( temp, [Date] ), Teste[Date], DAY )

Thank you!
Anonymous
Not applicable

Hey,
Is there a way to get Date value instead of Date difference as output?

@mblydt-hansen

You could use this calculated column

```Column =
VAR temp =
TOPN (
1,
FILTER (
Table1,
Table1[Patient ID] = EARLIER ( Table1[Patient ID] )
&& Table1[Date of Visit] < EARLIER ( Table1[Date of Visit] )
),
[Date of Visit], DESC
)
RETURN
DATEDIFF ( MINX ( temp, [Date of Visit] ), Table1[Date of Visit], DAY )```

Helper I

Hi,

I have followed your footsteps to recreate this DAX script and the following errors are being popped out: (in Red)

```Frequency =
VAR temp =
TOPN(1, FILTER(
&& Freq[new_Transaction_Date] < EARLIER( Freq[new_Transaction_Date])
),
Freq[new_Transaction_Date], DESC
)
return
DATEDIFF(MINX(temp, Freq[new_Transaction_Date]), Freq[new_Transaction_Date], DAY)```

Do you minf revieing my code?

Helper V

I have the same problem how you solve it?

Frequent Visitor

This is great - I'm getting exactly what I had hoped for. Thank you so much for your help!

Community Champion

@mblydt-hansen

see attached file as well

Regards
Zubair

Announcements

#### Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

#### Power BI Monthly Update - August 2024

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

#### Fabric Community Update - August 2024

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

Top Solution Authors
Top Kudoed Authors