Страницы: 1
RSS
Группировка строк с суммированием в PQ
 
Опять всем привет)!
Всё та же таблица, что и темой ниже, только сейчас добавил в PQ новый столбец, который считает сумму за сегодня, всё работает, но вот только приходиться свёртывание и сведение столбцов повторять два раза, так как первый раз я просчитываю без дополнительного столбца, а второй с дополнительным, возможно иное решение?
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    #"Другие столбцы с отмененным свертыванием" = Table.UnpivotOtherColumns(Источник, {"Имя", "Фамилия", "Город"}, "Атрибут", "Значение"),
    #"Измененный тип" = Table.TransformColumnTypes(#"Другие столбцы с отмененным свертыванием",{{"Атрибут", type date}}),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Измененный тип", "За сегодня", each if [Атрибут] = Date.From(DateTime.LocalNow()) then [Значение] else ""),
    #"Измененный тип1" = Table.TransformColumnTypes(#"Добавлен пользовательский объект",{{"За сегодня", type number}}),
    #"Сведенный столбец" = Table.Pivot(Table.TransformColumnTypes(#"Измененный тип1", {{"Атрибут", type text}}, "ru-RU"), List.Distinct(Table.TransformColumnTypes(#"Измененный тип1", {{"Атрибут", type text}}, "ru-RU")[Атрибут]), "Атрибут", "Значение", List.Sum),
    #"Другие столбцы с отмененным свертыванием1" = Table.UnpivotOtherColumns(#"Сведенный столбец", {"Имя", "Фамилия", "Город"}, "Атрибут", "Значение"),
    #"Сведенный столбец1" = Table.Pivot(#"Другие столбцы с отмененным свертыванием1", List.Distinct(#"Другие столбцы с отмененным свертыванием1"[Атрибут]), "Атрибут", "Значение", List.Sum)
in
    #"Сведенный столбец1" 
 
А вам что нужно в результате? Зачем вы создаете столбец "за сегодня", при этом оставляя старые?
 
Цитата
Alexey_Spb написал:
А вам что нужно в результате?
Я же написал выше ,
Цитата
adamm написал:
всё работает, но вот только приходиться свёртывание и сведение столбцов повторять два раза
А таблица у меня громадная, боюсь это займёт время и если есть вариант, упростить код
Цитата
Alexey_Spb написал:
Зачем вы создаете столбец "за сегодня", при этом оставляя старые?
Потому что мне это надо, так как это будет совсем другая отчётная таблица
 
adamm, так?
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    unpivot = Table.UnpivotOtherColumns(Source, {"Город", "Фамилия", "Имя"}, "Дата", "Сумма"),
    pivot = Table.Pivot(unpivot, List.Distinct(unpivot[Дата]), "Дата", "Сумма", List.Sum),
    duplicate = Table.DuplicateColumn(pivot, Date.ToText(Date.From(DateTime.LocalNow()),"dd.MM.yy"), "За сегодня")
in
    duplicate
 
Aleksei_Zhigulin,
спасибо, как я понял unpivot b pivot, схожи с отменённым свёртыванием и сведённым столбцом, только работают по быстрее, хотя в синтаксисе я не совсем разобрался)
И как я понял вы добавили дубликат столбца, который соответствует "сегодня"

PS извините, что не сразу ответил у меня +6 по Москве
 
Цитата
adamm написал:
+6 по Москве
точно не в Калуге)
 
Цитата
artyrH написал:
точно не в Калуге
В данный момент нахожусь в командировке, на Амуре
 
Цитата
adamm написал:
unpivot b pivot, схожи с отменённым свёртыванием и сведённым столбцом
Это ровно они и есть
Цитата
adamm написал:
И как я понял вы добавили дубликат столбца, который соответствует "сегодня"
совершенно верно
Страницы: 1
Наверх