Страницы: 1
RSS
Преобразование статусов по датам в динамику изменения статусов через PQ
 
Добрый день!

Есть таблица со статусами id каждого продукта на определенную дату.

Задача:
построение таблицы изменения статуса id от одной даты к последующей. предыдущая дата - статус на предыдущую дату - дата выгрузки данных - статус на дату выгрузки данных
Проблема в том, что при каждом новом получении данных - приходится заново переписывать код.

Подскажите, как исправить код, чтобы построение заданной таблицы изменений статуса происходило без переписывания кода.
Изменено: vikttur - 20.07.2021 14:21:26
 
Можно так:
Код
let
    src = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    typed = Table.TransformColumnTypes(src,{{"Наименование", type text}, {"Дата", type date}, {"Статус", type text}}),
    rename = Table.RenameColumns(typed,{{"Статус", "исходный статус"}, {"Дата", "начало периода"}}),
    group = 
        Table.Group(
            rename, 
            {"Наименование", "id"}, 
            {{
                "tmp", 
                each 
                    Table.SelectRows(
                        Table.FromColumns( 
                            Table.ToColumns( _ ) & {List.RemoveFirstN( _[#"начало периода"], 1) & {null}} & {List.RemoveFirstN(_[#"исходный статус"], 1) & {null}}, 
                            Table.ColumnNames( _ ) & {"конец периода"} & {"конечный статус"}
                        ),
                        each [конец периода] <> null
                    ),
                type table [#"начало периода"=date, #"исходный статус"=text, #"конец периода"=date, #"конечный статус"=text]
            }}
        ),
    expand = Table.ExpandTableColumn(group, "tmp", {"начало периода", "исходный статус", "конец периода", "конечный статус"})
in
    expand
Изменено: surkenny - 20.07.2021 15:37:40
 
Спасибо! Отлично работает!
Страницы: 1
Наверх