Forum Discussion

Intellar's avatar
Intellar
Frequent Visitor
2 years ago
Solved

Create a table with a 5 day range without weekend days

Hi,   So i am trying to calculate the following but im stuck. I want to create a table that always shows 5 dates. The dates should change depending on the current day and it should always be the ...
  • vojtechsima's avatar
    2 years ago

    Hello, Intellar,

    do it in power query like this.

     

    New query -> Blank Query -> go to Advanced Editor and paste this:

     

    let
        today = Date.From(DateTime.FixedLocalNow()),
        start = today - #duration(8,0,0,0),
        end = today + #duration(8,0,0,0),
        listDates = List.Dates(start, Number.From(end-start)+1, #duration(1,0,0,0) ),
        removeWeekends = List.Select(listDates, each  not List.Contains({"Sunday", "Saturday"}, Date.DayOfWeekName( Date.From(_), "en"))),
        positionOfToday = if List.PositionOf(removeWeekends, today) = -1 then  List.PositionOf(removeWeekends, List.Max(List.Select(removeWeekends, each Date.From(_) < today ))) else  List.PositionOf(removeWeekends, today),
        correctPositions = {positionOfToday-2..positionOfToday+2},
        finalList = List.Transform(correctPositions, each removeWeekends{_} ),
        #"Converted to Table" = Table.FromList(finalList, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
        #"Changed Type" = Table.TransformColumnTypes(#"Converted to Table",{{"Column1", type date}}),
        #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Column1", "Date"}})
    
    in
        #"Renamed Columns"

     



    EDIT:
    If today is weekend, it's gonna take Friday as today.