Страницы: 1
RSS
Power Query/Power BI - транспонирование по нескольким столбцам
 
Приветствую.
Есть таблица вида:
ПериодГруппа 1Сумма
01.01.2021Хрень 110
01.01.2021Хрень 120
01.01.2021Хрень 130
01.01.2021Хрень 210
01.01.2021Хрень 210
01.01.2021Хрень 210
01.02.2021Хрень 130
01.02.2021Хрень 120
01.02.2021Хрень 220
01.02.2021Хрень 210
Которую нужно транспонировать средствами PQ или PB по первому столбцу:
Период01.01.202101.02.2021
Хрень 16050
Хрень 23030
Туплю 2й день... Таблица очень большая, хотелось бы автоматизировать эту процедуру.
 
Код
= Table.Pivot(Table.TransformColumnTypes(#"Измененный тип", {{"Период", type text}}, "ru-RU"), List.Distinct(Table.TransformColumnTypes(#"Измененный тип", {{"Период", type text}}, "ru-RU")[Период]), "Период", "Сумма", List.Sum)
Только это не транспонирование, а сведение (группировка)
 
mechanix 85,
То, что нужно, спасибо!
Если можно, на какие кнопки это нажималось :-) ?
Пример упрощенный, буду пробовать масштабировать это на свои данные в PB.
 
вот
 
С одним столбцом прокатывает. А если надо по 2м столбцам свести ?
В данном случае: Кол-во и Стоимость.
 
Цитата
Veniamin Loginov написал:
А если надо по 2м столбцам свести ?
А как в таком случае должен выглядеть результат?
Вот горшок пустой, он предмет простой...
 
Если нужен такой вид таблицы, то вот код
Код
let
    Источник = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("lZJNCsJADIWvUmatw/y11LOU3kWLS9cuRBFvUERBqPQMmSt4EjNjC1Oa1s4ihWTykfeaFAWDKzztFl7QwoOt2Gd/TOAMta0wgQvU+PLmXYm72gk7mzXcoXXZzVaYYw+0dmcre2DlqmBaciG5Ekpij4sf302qoUn8g/AfEYGkGIYAFAW4ohKxhHQzNEFoitC9jzyGSAPjKudCRakaEIYiTDcjsKH/r8OrSglkWpVzTgCTxnOMzIyBWRe9JMGFWXQhUYAMlzFA5pexIYjpEwm3sYjwh6vNmJj9VSaNAIYLX4R4VTJDpPwC", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Столбец1 = _t, Столбец2 = _t, Столбец3 = _t, Столбец4 = _t, Столбец5 = _t]),
    #"Повышенные заголовки" = Table.PromoteHeaders(Источник, [PromoteAllScalars=true]),
    #"Измененный тип1" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"Период", type date}, {"№ Мат", Int64.Type}, {"Наим. Мат.", type text}, {"Кол-во", Int64.Type}, {"Стоимость", Int64.Type}}),
    #"Другие столбцы с отмененным свертыванием" = Table.UnpivotOtherColumns(#"Измененный тип1", {"Период", "№ Мат", "Наим. Мат."}, "Атрибут", "Значение"),
    #"Сведенный столбец" = Table.Pivot(Table.TransformColumnTypes(#"Другие столбцы с отмененным свертыванием", {{"Период", type text}}, "ru-RU"), List.Distinct(Table.TransformColumnTypes(#"Другие столбцы с отмененным свертыванием", {{"Период", type text}}, "ru-RU")[Период]), "Период", "Значение", List.Sum)
in
    #"Сведенный столбец"
 
ЭХ.. Надо, что бы Кол-во и Стоимость были по столбцам своего месяца. Что бы можно было посчитать Цену на каждый период.

Цитата
PooHkrd написал: А как в таком случае должен выглядеть результат?
Левая часть - № материала и Материал. Правая часть - Кол-во и Стоимость Материалов по месяцам.
Изменено: vikttur - 26.07.2021 11:01:57
 
Для чего этот цирк? это все можно сделать через сводную таблицу

А что мешает посчитать цену в таблице такого вида?
Дата  Товар   Кво   Сумма
Изменено: vikttur - 26.07.2021 11:02:47
 
Цитата
mechanix 85 написал: это все можно сделать через сводную таблицу
Это очень усеченный пример. Данных много и они постоянно пополняются в виде файлов с запасами за каждый месяц. Часть расчетов требует знать цену на начало и конец периода. Сечас перевожу все на BI. Застрял на этой задаче. Попробовал через Меру, но там какие-то ошибки пошли. Итог не считает.

Цитата
mechanix 85 написал: А что мешает посчитать цену в таблице такого вида?...
Вот именно в таком виде надо считать цену, но в сравнении на Начало и Конец периода.
Изменено: vikttur - 26.07.2021 11:03:36
 
Т.е. вы, вместо того чтобы плоскую таблицу сунуть в модель данных и мерами с визуалами производить анализ, пытаетесь слепить кривую таблицу, сунуть ее в модель? Ну, тогда не удивительно что
Цитата
Veniamin Loginov написал:
но там какие-то ошибки пошли. Итог не считает.
Вот горшок пустой, он предмет простой...
Страницы: 1
Наверх