Страницы: 1
RSS
PQ допущена ошибка при шаге Сведенный столбец
 
добрый день. не могли сказать какую я сделал ошибку на последнем шаге запроса. на скрине желаемый результат
Код
let
    Источник = {1..36},
    #"Преобразовано в таблицу" = Table.FromList(Источник, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Добавлен индекс" = Table.AddIndexColumn(#"Преобразовано в таблицу", "Индекс", 0, 1),
    #"Столбец с выполненным целочисленным делением" = Table.TransformColumns(#"Добавлен индекс", {{"Индекс", each Number.IntegerDivide(_, 12)+1, Int64.Type}}),
    #"Сведенный столбец" = Table.Pivot(Table.TransformColumnTypes(#"Столбец с выполненным целочисленным делением", {{"Индекс", type text}}, "ru-RU"), List.Distinct(Table.TransformColumnTypes(#"Столбец с выполненным целочисленным делением", {{"Индекс", type text}}, "ru-RU")[Индекс]), "Индекс", "Column1")
in
    #"Сведенный столбец"
Изменено: artyrH - 23.02.2019 12:00:09
 
Доброе время суток.
Как-то так
Код
let
    Источник = {1..36},
    #"Преобразовано в таблицу" = Table.FromList(Источник, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Добавлен индекс" = Table.AddIndexColumn(#"Преобразовано в таблицу", "Индекс", 0, 1),
    #"Столбец с выполненным целочисленным делением" = Table.TransformColumns(#"Добавлен индекс", {{"Индекс", each Number.IntegerDivide(_, 12)+1, Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Столбец с выполненным целочисленным делением", "Пользовательская", each Number.Mod([Column1] - 1, 12)),
    #"Сведенный столбец" = Table.Pivot(Table.TransformColumnTypes(#"Added Custom", {{"Индекс", type text}}, "ru-RU"), List.Distinct(Table.TransformColumnTypes(#"Added Custom", {{"Индекс", type text}}, "ru-RU")[Индекс]), "Индекс", "Column1")
in
    #"Сведенный столбец"
 
Андрей VG, спасибо. с доп. индекс-остатком от деления я уже сделал. почему, без этого столбца не срабатывает?
 
artyrH, вы повторяете мою ошибку при работе с Table.Pivot, когда я только начинал. Для создания сведенных столбцов должны быть ещё и строки, которые останутся, и относительно которых будут группироваться столбец  со значениями. Вот в своём примере Андрей вам именно это и показал.
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
Для создания сведенных столбцов должны быть ещё и строки, которые останутся, и относительно которых будут группироваться столбец  со значениями
раз такое условие. что ж, буду знать теперь.. спасибо.
 
Всё же я несколько по другому определил бы Table.Pivot(table as table,  pivotValues as list,  attributeColumn as text,  valueColumn as text,  optional aggregationFunction as nullable function) as table
Это агрегация aggregationFunction данных столбца, определяемого valueColumn, где значения всех остальных столбцов являются определяющими, какой список значений valueColumn получит aggregationFunction. Но при этом значения pivotValues  одного из группирующих столбцов, определяемого attributeColumn, используются для создания столбцов.
В примере, есть ли какое то различие между сводными?
Группирующий столбец, как в случае artyrH, может быть один. Но тогда на одно его значение приходится несколько значений valueColumn. Поэтому использование aggregationFunction является обязательным. Оно обязательно и в тех случаях, когда значения группирующих столбцов не образуют первичный ключ таблицы. Только если они уникальны, то можно не использовать aggregationFunction - так как будет существовать только одно значение valueColumn.
Другими словами Table.Pivot <> Table.Transpose :) . Полагаю именно так её воспринимает artyrH.
 
Цитата
Андрей VG написал:
Только если они уникальны, то можно не использовать aggregationFunction - так как будет существовать только одно значение valueColumn.
под этот случай вот этот запрос подходит
Код
let
    Источник = {"a".."c"},
    #"Преобразовано в таблицу" = Table.FromList(Источник, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Добавлен индекс" = Table.AddIndexColumn(#"Преобразовано в таблицу", "Индекс", 1, 1),
    #"Сведенный столбец" = Table.Pivot(Table.TransformColumnTypes(#"Добавлен индекс", {{"Индекс", type text}}, "ru-RU"), List.Distinct(Table.TransformColumnTypes(#"Добавлен индекс", {{"Индекс", type text}}, "ru-RU")[Индекс]), "Индекс", "Column1")
in
    #"Сведенный столбец"

Цитата
Андрей VG написал:
именно так её воспринимает  artyrH
до сегодняшнего дня я думал как показано на скрине. что не важно сколько значений в столбце значений, главное чтоб каждое значение имело имя будущего столбца. как оказалось, этого не достаточно.
Андрей VG,  спасибо что делитесь знаниями.
Страницы: 1
Наверх