cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
labuser1235 Helper III
Helper III

Date difference for working days excluding sundays

Hi All,

 

I would like to created a calculated column where it calculates date difference between two columns and return if it falls under 0-24 hrs or 24-48 hrs or 48-72 hrs or above 72hrs. Excluding only Sundays.

Table:

Start DateFruit NameTypePrice SoldEnd Date
01-31-2020OrangeType-2702-01-2020
01-31-2020Apple Type-3802-01-2020
01-31-2020GrapesType-1202-03-2020
01-31-2020OrangeType-1502-03-2020
01-31-2020OrangeType-31002-03-2020
01-31-2020Apple Type-1302-01-2020
01-31-2020GrapesType-2402-01-2020
01-31-2020GrapesType-3602-03-2020
01-31-2020OrangeType-1501-31-2020
01-31-2020OrangeType-2701-31-2020
01-31-2020Apple Type-3801-31-2020
01-31-2020GrapesType-1201-31-2020
01-30-2020OrangeType-1502-03-2020
01-30-2020OrangeType-31002-03-2020
01-30-2020Apple Type-1302-03-2020
01-30-2020GrapesType-2402-01-2020
01-30-2020GrapesType-3602-01-2020
01-30-2020OrangeType-1502-01-2020

 

Expected Output:

Start DateFruit NameTypePrice SoldEnd DateExpected Output
01-31-2020OrangeType-2702-01-202024 to 48 Hrs
01-31-2020Apple Type-3802-01-202024 to 48 Hrs
01-31-2020GrapesType-1202-03-202048 to 72 Hrs
01-31-2020OrangeType-1502-03-202048 to 72 Hrs
01-31-2020OrangeType-31002-03-202048 to 72 Hrs
01-31-2020Apple Type-1302-01-202024 to 48 Hrs
01-31-2020GrapesType-2402-01-202024 to 48 Hrs
01-31-2020GrapesType-3602-03-202048 to 72 Hrs
01-31-2020OrangeType-1501-31-20200 to 24 Hrs
01-31-2020OrangeType-2701-31-20200 to 24 Hrs
01-31-2020Apple Type-3801-31-20200 to 24 Hrs
01-31-2020GrapesType-1201-31-20200 to 24 Hrs
01-30-2020OrangeType-1502-03-2020More than 72 Hrs
01-30-2020OrangeType-31002-03-2020More than 72 Hrs
01-30-2020Apple Type-1302-03-2020More than 72 Hrs
01-30-2020GrapesType-2402-01-202048 to 72 Hrs
01-30-2020GrapesType-3602-01-202048 to 72 Hrs
01-30-2020OrangeType-1502-01-202048 to 72 Hrs
1 ACCEPTED SOLUTION

Accepted Solutions
Community Support
Community Support

Re: Date difference for working days excluding sundays

Hi @labuser1235 ,

 

In your scenario, we should create a date table like that.

date = ADDCOLUMNS(CALENDARAUTO(),"Sunday",IF(WEEKDAY([Date],2) = 7,1,0))

 

Then we can create a calculated column in our fact table as below.

Column = 
VAR workingdays =
    CALCULATE (
        COUNTROWS ( 'date' ),
        FILTER (
            'date',
            'date'[Date] > 'Table'[Start Date]
                && 'date'[Date] <= 'Table'[End Date]
                && 'date'[Sunday] <> 1
        )
    )
RETURN
    SWITCH (
        TRUE (),
        workingdays = 1, "0 to 24 Hrs",
        workingdays = 2, "24 to 48 Hrs",
        workingdays = 3, "48 to 72 Hrs",
        "More that 62 Hrs"
    )

Capture.PNG

 

For more details, please check the pbix as attached.

 

Community Support Team _ Frank
If this post helps, then please consider Accept it as the solution to help the others find it more quickly.

View solution in original post

7 REPLIES 7
javirmerino Helper III
Helper III

Re: Date difference for working days excluding sundays

Hi @labuser1235, sounds like an if formula is needed here.

 

https://docs.microsoft.com/en-us/dax/if-function-dax

 

=if ( datediff ([StartDate],[EndDate],HOUR) < 24, "Less Than 24 Hours",
if (datediff ([StartDate],[EndDate],HOUR)>=24 and datediff ([StartDate],[EndDate],HOUR)<48,"24-48 Hours",
if (datediff ([StartDate],[EndDate],HOUR)>=48 and datediff ([StartDate],[EndDate],HOUR)<72,"48-72 Hours","More Than 72 Hours")

 

Alternatively you could change the datediff to days, which would return whole integers (0,1,2,3 etc) that could be used in a SWITCH function. you can read more, here;

 

https://docs.microsoft.com/en-us/dax/switch-function-dax

 

Does that help?

labuser1235 Helper III
Helper III

Re: Date difference for working days excluding sundays

@javirmerino Thank you so much for your quick response. I want it to ignore Sundays. How can we filter that could you please re-write the formula in that way.

Highlighted
javirmerino Helper III
Helper III

Re: Date difference for working days excluding sundays

I've just realised you want Sundays excluded also. Do you have a Date Dimensions table in use?

 

If so, you can add an additional column, IsWeekDay, using the SWITCH function;

IsWeekDay =
SWITCH (
    WEEKDAY ( [Date] ),
    1, 0,
    1
)

 This basically says if weekday is 1 (Sunday) then 0 (false), else 1 (True), which can be referenced in a second measure;

=
CALCULATE (
    SUM ( DateTable[IsWorkday] ),
    DATESBETWEEN (
        DateTable[Date],
        'Source'[StartDate],
        'Source'[EndDate]
    )
)

Finally, this can be referenced in the original If formula or a new SWITCH to convert the integers into your string for binning.

 

I hope that helps a little more for you.

Super User IV
Super User IV

Re: Date difference for working days excluding sundays

Create a date table and use that get days and use that to get your logic.

If you have date table. the You can have new column in your table.

days diff = countx(filter(Date,date[date]>=table[Start_date] && date[date]<=table[Start_date]),If(weekday(date[date])=1,0,1))

 

To get the best of the time intelligence function. Make sure you have a date calendar and it has been marked as the date in model view. Also, join it with the date column of your fact/s. Refer :
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

Appreciate your Kudos. In case, this is the solution you are looking for, mark it as the Solution.
In case it does not help, please provide additional information and mark me with @

Thanks. My Recent Blogs -Decoding Direct Query - Time Intelligence, Winner Coloring on MAP, HR Analytics, Power BI Working with Non-Standard TimeAnd Comparing Data Across Date Ranges
Proud to be a Datanaut Connect on Linkedin





Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
In case it does not help, please provide additional information and mark me with @
My Recent Blog -Week is not so Weak Proud to be a Super User! Connect on Linkedin


labuser1235 Helper III
Helper III

Re: Date difference for working days excluding sundays

Hi @amitchandak ,

I have a Dimdate table where weekdays column is available as "Sunday,Monday,Tuesday etc..,".

And both the table are related via Table1 Start date to Dimdate Table date. 

 

However, I want the output column to be as 0 to 24Hrs, 24 to 48Hrs, 48 to 72Hrs, More than 72Hrs. 

 

days diff = countx(filter(Date,date[date]>=table[Start_date] && date[date]<=table[Start_date]),If(weekday(date[date])=1,0,1))

How can we achieve using your formula.

Super User IV
Super User IV

Re: Date difference for working days excluding sundays

On top of that, you can write another column or in same column taking that as var

Switch(true(),
table[days diff] <=1 , "0 to 24Hrs",
table[days diff] >1 && table[days diff] <=2 , "24 to 48Hrs",
table[days diff] >2 && table[days diff] <=3, "48 to 72Hrs",
"More than 72Hrs") 

 





Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
In case it does not help, please provide additional information and mark me with @
My Recent Blog -Week is not so Weak Proud to be a Super User! Connect on Linkedin


Community Support
Community Support

Re: Date difference for working days excluding sundays

Hi @labuser1235 ,

 

In your scenario, we should create a date table like that.

date = ADDCOLUMNS(CALENDARAUTO(),"Sunday",IF(WEEKDAY([Date],2) = 7,1,0))

 

Then we can create a calculated column in our fact table as below.

Column = 
VAR workingdays =
    CALCULATE (
        COUNTROWS ( 'date' ),
        FILTER (
            'date',
            'date'[Date] > 'Table'[Start Date]
                && 'date'[Date] <= 'Table'[End Date]
                && 'date'[Sunday] <> 1
        )
    )
RETURN
    SWITCH (
        TRUE (),
        workingdays = 1, "0 to 24 Hrs",
        workingdays = 2, "24 to 48 Hrs",
        workingdays = 3, "48 to 72 Hrs",
        "More that 62 Hrs"
    )

Capture.PNG

 

For more details, please check the pbix as attached.

 

Community Support Team _ Frank
If this post helps, then please consider Accept it as the solution to help the others find it more quickly.

View solution in original post

Helpful resources

Announcements
‘Better Together’ T-Shirt Contest – Winner Announced!

‘Better Together’ T-Shirt Contest – Winner Announced!

And the winner is...

Announcing the New Spanish Forum

Announcing the New Spanish Forum

Do you need help in Spanish? Check out our new Spanish community section.

April 2020 Community Highlights

April 2020 Community Highlights

Info on our Super Users, MBAS content and badges, and updates to our support articles. - Read the full Community Highlights.

MBAS Gallery 2020

MBAS Gallery 2020

Watch Microsoft Business Applications Summit sessions on-demand.

Top Solution Authors
Top Kudoed Authors