Страницы: 1
RSS
Получить из числа календарь в PQ
 
Всем привет! Есть простая таблица с двумя числами, кол-во дней и сумма, есть необходимость развернуть её и трансформировать в календарь. В примере, кол-во дней 161 нужно получить список дат по 06.04.2021 от сегодня, при всем параметр кол-во дней каждый день обновляется он может увеличиваться и уменьшаться и его нужно формировать от сегодня.
 
Доброе время суток.
Вариант
Код
let
    today = Date.From(DateTime.LocalNow()),
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    daySequence = Table.TransformColumns(Source, {"Кол-во дней", each {1.._}, List.Type}),
    expandSequence = Table.ExpandListColumn(daySequence, "Кол-во дней"),
    addDate = Table.AddColumn(expandSequence, "По датам", each today + #duration([#"Кол-во дней"], 0, 0, 0), Date.Type),
    result = Table.TransformColumnTypes(addDate,{{"Кол-во дней", Int64.Type}, {"сумма", type number}})

in
    result

P. S. Интересно, что вызвало затруднение при собственном решении?
Изменено: Андрей VG - 27.10.2020 08:49:09
 
Андрей спасибо!
Можете пояснить
Код
Table.TransformColumns(Source, {"Кол-во дней", each {1.._}, List.Type})
тут мы создаем таблицу со списком, как понимаю список сформирован из значения "161"? И выражение "List.Type" это и есть список?
Код
= Table.AddColumn(expandSequence, "По датам", each today + #duration([#"Кол-во дней"], 0, 0, 0), Date.Type)
Ту мы прибавляем к сегодня список количество дней, в справочнике я так не смог разобраться с  #duration
 
просто
Код
let
    a = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    b = a[#"Кол-во дней"]{0},
    c = a[сумма]{0},
    d = Number.From(Date.From(DateTime.LocalNow()))+1,
    e = {d..d+b-1},
    f = Table.FromColumns({e,{c}}),
    g = Table.FillDown(f,{"Column2"}),
    i = Table.AddIndexColumn(g, "Индекс",  1)
in
    i
 
Михаил так же спасибо!
Код
= {d..d+b-1}
не могу понять данную строчку, можете пояснить?
точнее сказать как дойти до понимания того, что при формировании списка нужно взять дату и прибавить первую строку таблицы
Изменено: adamm - 27.10.2020 11:35:17
 
adamm, вы это уже встречали
Код
{1..12}
Только вместо чисел ставим переменные.
 
Цитата
adamm написал:
И выражение "List.Type" это и есть список?
List.Type это сообщение для PQ, что после трансформации столбца он содержит списки.
Цитата
adamm написал:
не смог разобраться с  #duration
в PQ нельзя сложить дату и дату, можно к дате добавить значение типа #duration, которое задается четырьмя числами - дни, часы, минуты, секунды. В дни в данном случае пихаем значение столбца "Количество дней"
F1 творит чудеса
Страницы: 1
Наверх