Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
8 years ago
Solved

Adding only workdays to a specific date

Hello

 

I have a data column

i have a number of days column

these days can wary from 1-50 days

 

What i need help figuring out, is how do i subract those days in "workdays" from that date and then land on a non workday.

 

The date is delivery date + how many transport days.

So what i need is the delivery date without the transport days so i can match it with another date

 

So example

i whanto subtract lets say 50 work days from the date 01.11.2017

it will work to just write it like so column = [date] - [days]

but i need it to only subtract workdays, and the date haseto land on a workday aswell

 

Any help would be welcomed

-Robin

  • sdjensen's avatar
    sdjensen
    8 years ago

    Okay - to assist others with similar challenges I will just make a short description of the solution I created.

     

    First make sure that there is a relationship between the table and the calendar table.

     

    Then in the calendar table create a few columns to create an index for workingdays

    IsWorkday = SWITCH( WEEKDAY('Calendar'[Date]); 1; 0; 7; 0;1 )
    
    WorkingDayIndex = 
    RANKX(
        FILTER(
            'Calendar';
            'Calendar'[IsWorkDay] = 1
        );
        'Calendar'[Date];
        ;ASC
    ) 

     

    Then in the table that should hold the result I created this calculation that make a simple lookup in the calendar table using the index column created above.

    NewDate = 
    VAR DateIdx = CALCULATE( MAX( 'Calendar'[WorkingDayIndex] ); 'Table1'[Date] = RELATED('Calendar'[Date] ) )
    VAR NewDateIdx = DateIdx + Table1[Transport days]
    
    RETURN
    CALCULATE(
        MAX('Calendar'[Date]);
        FILTER(
            ALL('Calendar');
            'Calendar'[WorkingDayIndex] = NewDateIdx 
                && 'Calendar'[IsWorkday] = 1
        )
    )

26 Replies

  • dilumd's avatar
    dilumd
    Impactful Individual

    Hi

     

    Do you have a list of days as non working days or you want to use Sat & Sun only as non working?

    • Anonymous's avatar
      Anonymous
      Not applicable

      I have a calendar table were i use this

      WorkDay =
      VAR WeekDayNum =
      WEEKDAY ( 'Dato + measures'[Date], 2 )
      RETURN
      (
      IF ( WeekDayNum = 6 || WeekDayNum = 7, FALSE (), TRUE () )
      )

       

      But im open to other surgestions

    • Anonymous's avatar
      Anonymous
      Not applicable

      If you have the change, could you explane alittle more whet you mean?

      I dont understand how to use that in this case