Получить даты дня недели в диапазоне дат (дата начала, дата окончания) и год в PowerQuery M - PullRequest
0 голосов
/ 27 марта 2019

Мне нужно расширить список, учитывая входные данные: дату начала, дату окончания и дни недели, когда что-то должно произойти.Это должно быть сделано с помощью M в Power Query.


Диапазон дат может охватывать несколько недель, например:
дата начала: 15.04.19
дата окончания: 29.04.19
день недели: 1

Я ожидаю получить 3 строки:

  • 04/15/19
  • 04/22/19
  • 04/29/19


или охватывают одну неделю и день:
дата начала: 15.04.19
дата окончания: 15.04.19
день недели: 1

Я ожидаюполучить 1 строку:

  • 04/15/19

Я использовал: Получить дату из номера недели, дня недели и года PowerQuery M в качестве первого шага в пониманиикак подойти к решению.

Заранее спасибо.

1 Ответ

1 голос
/ 28 марта 2019

Вы можете использовать функцию для отображения всех дат в выбранном вами диапазоне и фильтрации по выбранному дню недели:

(DateStart as date, DateEnd as date, DayOfWeek as number) =>
let
    #"Date List" = List.Dates(DateStart,Duration.Days(DateEnd-DateStart)+1,#duration(1,0,0,0)),
    #"Date Table" = Table.FromList(#"Date List", Splitter.SplitByNothing(), {"Date"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Date Table",{{"Date", type date}}),
    #"Filtered Dates" = Table.SelectRows(#"Changed Type", each (Date.DayOfWeek([Date], Day.Sunday) = DayOfWeek))
in
    #"Filtered Dates"

Вызывается в качестве теста:

let
    Source = fnListWeekdaysInRange(#date(2019, 4, 15), #date(2019, 4, 29), 1)
in
    Source

Что возвращает:

enter image description here

...