Forum Discussion
Workday Adjusted Date Logic
I am trying to create date logic that would identify the current year workday and return sales from that same workday in the prior year. With the holidays so far this year, the issue i'm getting is my returned data is off by 1 workday.
- Anonymous2 years ago
Hi Anonymous ,
I created some data:
Table:
holiday table:
Here are the steps you can follow:
1. Create calculated column.
Test = var _week=WEEKDAY('Table'[Date],2) var _column=SELECTCOLUMNS('holiday table',"date",[Date]) return IF( 'Table'[Date] in _column || _week in {6,7},0,1)Workday = IF( [Test]=0,BLANK(), RANKX( FILTER(ALL('Table'), YEAR('Table'[Date])=YEAR(EARLIER('Table'[Date]))&&[Test]=1),'Table'[Date],,ASC) )Current = IF( YEAR('Table'[Date])= YEAR(TODAY()), "Currrent Year")2. Create measure.
compare = var _lastyear= MAXX( FILTER(ALL('Table'), YEAR('Table'[Date])=YEAR(MAX('Table'[Date]))-1&&'Table'[Workday]=MAX('Table'[Workday])),[Date]) var _value= SUMX( FILTER(ALL('Table'),'Table'[Date]=_lastyear),[Value]) return IF( MAX('Table'[Test])=BLANK(),BLANK(), MAX('Table'[Value])- _value)3. Result:
Best Regards,
Liu Yang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly
5 Replies
- Gayatri_D05Resolver II
Hi Anonymous ,
While trying to undertstand your question, I am confused as to what result are you expecting if the current year has holiday and the prior year too ?
Should be taking day-1 ? - AnonymousNot applicable
Based on the calendar, data Jan1- Jan18 of 2024 13 workdays. The same period last year had 12 workdays due to Jan2 being an observed holiday.
I am trying to write an expression that would identify the current year workday number, and compare it to the same workday number in the previous year, despite the calendar day being different.
- Gayatri_D05Resolver II
Is there any column you are maintaining to identify that pasrticular date as a Holiday ?
- AnonymousNot applicable
Yes, my date table contains workday data for current year and prior year
- AnonymousNot applicable
Hi Anonymous ,
I created some data:
Table:
holiday table:
Here are the steps you can follow:
1. Create calculated column.
Test = var _week=WEEKDAY('Table'[Date],2) var _column=SELECTCOLUMNS('holiday table',"date",[Date]) return IF( 'Table'[Date] in _column || _week in {6,7},0,1)Workday = IF( [Test]=0,BLANK(), RANKX( FILTER(ALL('Table'), YEAR('Table'[Date])=YEAR(EARLIER('Table'[Date]))&&[Test]=1),'Table'[Date],,ASC) )Current = IF( YEAR('Table'[Date])= YEAR(TODAY()), "Currrent Year")2. Create measure.
compare = var _lastyear= MAXX( FILTER(ALL('Table'), YEAR('Table'[Date])=YEAR(MAX('Table'[Date]))-1&&'Table'[Workday]=MAX('Table'[Workday])),[Date]) var _value= SUMX( FILTER(ALL('Table'),'Table'[Date]=_lastyear),[Value]) return IF( MAX('Table'[Test])=BLANK(),BLANK(), MAX('Table'[Value])- _value)3. Result:
Best Regards,
Liu Yang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly