Страницы: 1
RSS
Выборочное суммирование столбцов в Power Query, Как автоматизировать суммирование столбцов в Power Query
 
Добрый день.

Буду очень признателен, если сможете помочь и подсказать с решением следующей проблемы в PQ: ежемесячно выгружается файл со списком деталей (количество может доходить до нескольких тысяч) и списком столбцов, которые классифицируют затраты по деталям (материалы, логистика, производство). Нужно сгруппировать эти затраты путем сложения значений по столбцам в каждой строке.
Основные проблемы:
1) Порядок следования столбцов при каждой выгрузке меняется
2) Количество столбцов также может меняться и находится в диапазоне (50-200 столбцов).

Как Вы понимаете, вручную создавать настраиваемые столбцы и постоянно переписывать условия не удобно и смысл автоматизации полностью пропадает. Вопрос% как можно создать три столбца, позволяющие суммировать столбцы по условию. Описания столбцов (материалы, логистика, производство) никогда не меняются.

Файл с примером

Заранее спасибо за ответ
Изменено: Константин Илькаев - 27.11.2020 19:58:18
 
Доброе время суток.
Вариант на Power Query & Power Pivot
 
Код
let
    Source = Excel.CurrentWorkbook(){[Name="tbl"]}[Content],
    Custom1 = Table.ToColumns(Source),
    #"Removed Top Items" = Table.FromRows(List.Skip(Custom1,4)),
    a = Table.Group(#"Removed Top Items", {"Column2"}, {{"a", each Table.AddColumn(Table.Skip(
    Table.FromColumns(Table.ToRows(_)),2),"sum", each List.Sum(Record.FieldValues(_)))[sum]}}),
    #"Filtered Rows" = Table.SelectRows(a, each [Column2] <> null and [Column2] <> ""),
    Custom2 = let a=#"Filtered Rows" in Table.FromColumns(List.Transform(List.FirstN(Custom1,4), each
    List.Skip(_,2))&a[a],{"a","b","c","d"}&List.Transform(a[Column2], each "Сумма "&_))
in
    Custom2
 
Уважаемый Андрей, Уважаемый Михаил!

Огромное Вам спасибо за предложенные решения. Попробую сам разобраться как работают Ваши коды. К сожалению, я только начинаю разбираться в особенностях работы языка М для PQ, поэтому пока для меня коды выглядят не так просто.  
Страницы: 1
Наверх