Forum Discussion
DATEDIFF Working Days
- 9 years ago
Hi Benjamin_500,
First you should create a holiday table including all holiday form Delivery start date to Today. Then create relationship between holiday table and your 'Repot' table.
I try to reproduce your scenario using date from 2017/1/1 to 2017/3/31.
Search the holiday days for 2017, I use "List of federal Public Holidays of USA in 2017", and type it in Power BI table as followings.
Create relationship between Holiday table and Date Table.
Use WEEKDAY function to get weekdays, use RELATED function to get holidays. Use if function to decide if the day is work day.WeekDay = WEEKDAY(DateTable[Date]) Holiday = RELATED(Holiday[Holiday])
If work day = IF(OR(DateTable[WeekDay]=1,DateTable[WeekDay]=7),0,IF(ISBLANK(DateTable[Holiday]),1,0))
The 1 stands for the day is work day.
Finally, create a measure to calculate the number od holidays. And create a card visual to display the result.Total work days = CALCULATE(COUNT(DateTable[Date]),FILTER(DateTable,DateTable[If work day]=1))
If you have other issues, please let me know.Best Regards,
Angelia
Hi Benjamin_500,
First you should create a holiday table including all holiday form Delivery start date to Today. Then create relationship between holiday table and your 'Repot' table.
I try to reproduce your scenario using date from 2017/1/1 to 2017/3/31.
Search the holiday days for 2017, I use "List of federal Public Holidays of USA in 2017", and type it in Power BI table as followings.
Create relationship between Holiday table and Date Table.
Use WEEKDAY function to get weekdays, use RELATED function to get holidays. Use if function to decide if the day is work day.
WeekDay = WEEKDAY(DateTable[Date]) Holiday = RELATED(Holiday[Holiday])
If work day = IF(OR(DateTable[WeekDay]=1,DateTable[WeekDay]=7),0,IF(ISBLANK(DateTable[Holiday]),1,0))
The 1 stands for the day is work day.
Finally, create a measure to calculate the number od holidays. And create a card visual to display the result.
Total work days = CALCULATE(COUNT(DateTable[Date]),FILTER(DateTable,DateTable[If work day]=1))
If you have other issues, please let me know.
Best Regards,
Angelia
Hi v-huizhn-msft (Angelia)
Thanks for this, however, this is an akward workaround, it relies on the table being updated every year and it being populated accuratly for a whole year to start with.
While we could make a central "Holidays" table for all users to link too, its the kind of thing that will always get left behind due to its low priority vs other tasks.
I guess, coming from Tableau, where you just clicked on "Weekdays" and it worked it all out for you, I was looking for something much the same.
Thank you for the idea, I will keep it in mind if i cant find a better solution.
Kind Regards,
Ben