Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
2 years ago
Solved

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.

  • Anonymous's avatar
    Anonymous
    2 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

  • 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 ?

  • Anonymous's avatar
    Anonymous
    Not 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_D05's avatar
      Gayatri_D05
      Resolver II

      Is there any column you are maintaining to identify that pasrticular date as a Holiday ?

      • Anonymous's avatar
        Anonymous
        Not applicable

        Yes, my date table contains workday data for current year and prior year

  • Anonymous's avatar
    Anonymous
    Not 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