Страницы: 1
RSS
Маркировка последнего вхождения позиции в отчет на Power Query
 
Добрый день!
С помощью Power Query собираю пользовательские сводки в формате Excel из отдельной папки. Объединяю их в один отчет. Дальше требуется обработать данные, а именно: проставить маркеры в текущей сводке тех позиций, которые отсутствуют в последующих сводках (пояснения см. во вложении). Обращаюсь за помощью в поиске решения к специалистам именно по Power Query. В Excel справился бы и сам :)
 
Как-то так:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    ChangedType = Table.TransformColumnTypes(Источник,{{"Дата отчета", type date}, {"Индекс заявки", Int64.Type}}),
    GroupedRows = Table.Group(ChangedType, {"Индекс заявки"}, {{"таб", each let t = Table.Sort(_,{{"Дата отчета", Order.Ascending}}) in Table.FromColumns(Table.ToColumns(t)&{List.Skip(t[Дата отчета])}, Table.ColumnNames(t)&{"Дата отчета.След"}), type table [Дата отчета=date, Индекс заявки=number]}}),
    таб = Table.Combine(GroupedRows[таб]),
    AddedCustom = Table.AddColumn(таб, "AbandonFlag", let maxdate = List.Max(таб[Дата отчета]) in each 
        if [Дата отчета.След]=null 
            then Number.From( [Дата отчета]<maxdate ) 
            else Number.From( ([Дата отчета.След] - [Дата отчета])>Duration.From(1) ), 
        Int64.Type),
    RemovedColumns = Table.RemoveColumns(AddedCustom,{"Дата отчета.След"}),
    SortedRows = Table.Sort(RemovedColumns,{{"Дата отчета", Order.Ascending}})
in
    SortedRows
Вот горшок пустой, он предмет простой...
 
List.Skip(t[Дата отчета]) - вот оно, настоящее колдовство!
Спасибо, Мастер!  :)  
Страницы: 1
Наверх