Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
PQ. Строки с промежуточными итогами, Необходимо суммировать строки раздела
 
Здравствуйте!
Прошу помочь с решением задачи.

Необходимо складывать строки относящиеся к одному разделу. При этом, итоговая строка может называться просто "Итого" или иметь разные названия.
В файле примера имеется исходная таблица и пример результата:



Благодарю!
 
А зачем вы такие вопросы решаете через PQ? Он не совсем для этого создан. Это уже задача сводной таблицы, в ней это делается за минуту,
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
делается за минуту
я бы сказал за пару секунд  ;)
но если очень надо...
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    lst = List.Distinct(from[Месяц.Год]),
    pvt = Table.Pivot(from, lst , "Месяц.Год", "Сумма"),
    f=(t)=>t&Table.FromRecords({List.Accumulate(lst,[#"Уровень 1"="Итого:"],(s,c)=>Record.AddField(s,c,List.Sum(Table.Column(t,c))))}),
    group = Table.Group(pvt, "Уровень 1", {"tmp", f}),
    to = Table.Combine(group[tmp])
in
    to
Каждому For свой Next
 
ivanka, решение на базе вашего примера отсюда
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    GroupedRows = Table.Group(
        Source, 
        {"Уровень 1", "Месяц.Год"}, 
        {   {"таб", each Table.Pivot(_, List.Distinct([Месяц.Год]), "Месяц.Год", "Сумма", List.Sum), type table }, 
            {"Уровень 2", each "Итого", type text}, 
            {"Сумма", each List.Sum([Сумма]), type number}}),
    AddedCustom = Table.AddColumn(GroupedRows, "таб2", each [таб] & Table.FromRecords({Record.AddField( Record.RemoveFields(_,{"таб", "Месяц.Год", "Сумма"}),[Месяц.Год], [Сумма])} ) ),
    Custom1 = Table.Combine( AddedCustom[таб2] )
in
    Custom1
Вот горшок пустой, он предмет простой...
Страницы: 1
Читают тему (гостей: 1)
Наверх