Страницы: 1
RSS
Итерация строк до определенной даты в запросе PQ
 
Уважаемые форумчане!

В исходной таблице имеем поля  "Item", "Interval" и "Next Due".
Нужно, добавляя интервал к дате следующего выполнения, каждую строку повторить необходимое количество раз до даты 31.12. (текущий год + 5 лет).
К примеру:
  • 2-79-003-01 имеет интервал 365 дней и следующее выполнение 21.06.2021. Соответственно эта строка должна повториться 4 раза - с датами 21.06.2022, 21.06.2023, 20.06.2024, 20.06.2025
  • 2-72-009-03 имеет интервал 183 дня и следующее выполнение 21.12.2020 . Соответственно эта строка должна повториться 10 раз - с датами 22.06.2021, 22.12.2021, 23.06.2022, 23.12.2022, 24.06.2023, 24.12.2023, 24.06.2024, 24.12.2024, 25.06.2025, 25.12.2025
Я "криво" смог добавить руками 5 дополнительных столбцов в запросе, которые потом объединил в один. Естественно там нет учета ограничения даты.
Пожалуйста, подскажите как это сделать запросе PQ правильным решением? Интересует решение именно запроса PQ.
Файл пример для извращений прикреплен.
 
Код
let
    from = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    max = #date(Date.Year(DateTime.LocalNow())+5,12,31),
    add = Table.AddColumn(from,"Dates", each 
                                            try List.Dates( Date.From([Next Due]),
                                                            Int64.From(max - Date.From([Next Due]))/[Interval],
                                                            #duration([Interval],0,0,0)) 
                                            otherwise null),
    to = Table.ExpandListColumn(add, "Dates")
in
    to
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, спасибо большое! Элегантное решение!
Страницы: 1
Наверх