Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

DATEDIFF working days between 2 dates

Hey all,

 

I've followed the "DATEDIFF Working Days" instructions for calculate the working days. In fact, I have a table with all the days and a "1" in the saturdays, sundays and holidays ("0" on work days). But I'm not getting what I want. Could you help me?

 

Also, I have a table like this:

IDStart DateFinal DateDATEDIFFDATEDIFF1
12301/01/201802/01/20181?
12405/01/201810/01/20185?
12515/01/201801/02/201817?
12618/01/201820/01/20182?

 

I got a DATEDIFF between dates but I want the DATEDIFF discounts the saturdays, sundays and holidays. I thoght about calculate how many saturdays, sundays and holidays are between start and final date and then rest it in DATEDIFF column. But I don't know how I should say it to PowerBI.

 

Regards

4 Replies

    • Anonymous's avatar
      Anonymous
      Not applicable

      Yes! It worked for me.

       

      In your example you only have 1 holiday (25/12/2017). I'm trying to add more dates; 26/12/2017, etc.

       

      Just a quick question, in order to add more holidays, you need to add them in both places (table and formula). Is it right? I thought it should be added only in the table and then the formula gets all these holidays.

       

      Regards

      • Greg_Deckler's avatar
        Greg_Deckler
        Community Champion

        No, you should just have to add them in one place. I used a DATATABLE in the measure, just so that everything was contained in the measure itself. In practice, I would expect that you would have a separate table of holidays and you would just load that into the holidays var like this:

         

        NetWorkDaysHolidays = 
        VAR Calendar1 = CALENDAR(MAX(NetWorkDays[created date]),MAX(NetWorkDays[review date]))
        VAR Holidays1 = 'HolidayTable'
        VAR Calendar2 = EXCEPT(Calendar1,Holidays1)
        VAR Calendar3 = ADDCOLUMNS(Calendar2,"WeekDay",WEEKDAY([Date],2))
        RETURN COUNTX(FILTER(Calendar3,[WeekDay]<6),[Date])

        In this case, you would have a table called "HolidayTable".