Страницы: 1
RSS
PQ Суммирование столбцов по именам из списка
 
Здравствуйте.
Гуру Power, черт его возьми, Query, помогите. Нужно суммировать значения по столбцам, имена которых находятся в списке. Список - это месяцы года, динамически будет изменяться. "Знаю" (чую), что нужно просто "сказать", что значения в списке не текст, а имена столбцов. Обыскался везде и перепробовал всякие преобразования, но не получается, выдает ошибку.
Пример с ошибкой прилагается.
 
Формула для столбца:
Код
=List.Sum( Record.ToList( Record.SelectFields(_, Список) ) )
Вот горшок пустой, он предмет простой...
 
BodkhiSatva, тоже посмотрите
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Type = Table.TransformColumnTypes(Source,{{"Месяц", type text}}),
    spisok = List.Distinct(Type[Месяц]),
    add = Table.Group(Type, {"Контрагент"}, {{"Кол", each Table.Pivot(_[[Месяц],[Количество]], spisok, "Месяц", "Количество", List.Sum)}, {"Количество", each List.Sum([Количество])}}),
    to = Table.ExpandTableColumn(Table.Sort(add,{{"Контрагент",0}}), "Кол", spisok)
in
    to
Изменено: Михаил Л - 25.02.2020 18:15:26 (ошибочка вышла)
 
Михаил Л, ага, а еще вот так:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    GroupedRows = Table.AddColumn( Table.Group(Источник, {"Контрагент"}, {{"Количество", each List.Sum([Количество]), type number}}), "Месяц", each "Сумма", type text),
    PivotedColumn = Table.Pivot(Table.TransformColumnTypes(Источник & GroupedRows, {{"Месяц", type text}}, "ru-RU"), List.Distinct(Table.TransformColumnTypes(Источник & GroupedRows, {{"Месяц", type text}}, "ru-RU")[Месяц]), "Месяц", "Количество", List.Sum)
in
    PivotedColumn

и так тоже можно:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    PivotedColumn = Table.Pivot(Table.TransformColumnTypes(Source, {{"Месяц", type text}}, "ru-RU"), List.Distinct(Table.TransformColumnTypes(Source, {{"Месяц", type text}}, "ru-RU")[Месяц]), "Месяц", "Количество", List.Sum),
    AddedCustom = Table.AddColumn(PivotedColumn, "Сумма", each List.Sum( Record.ToList( Record.RemoveFields(_, "Контрагент") ) ))
in
    AddedCustom
Вот горшок пустой, он предмет простой...
 
"Все гениальное - просто" (с)  :)  и ведь правильно чуял...  ;)

PooHkrd, и Михаил Л, спасибо большое, помогли
Цитата
Михаил Л написал:
BodkhiSatva , тоже посмотрите
посмотрел, элегантное решение, получить сначала сумму, а потом развернуть по месяцам... натолкнуло меня на мысль применить такой ход в другом месте
Цитата
PooHkrd написал:
Михаил Л , ага, а еще вот так:

ну с вашими черными поясами по PQ это вообще семечки, уложить все в 3 строки... ))) меня, к слову, наповал... ))))
 
BodkhiSatva, где чёрный пояс? Я вообще мимо проходил. Тут и по-мастеровитее меня есть товарищи. Кстати, последний вариант, он вообще кнопочный.
Вот горшок пустой, он предмет простой...
Страницы: 1
Наверх