Страницы: 1
RSS
Разделить список по столбцам в PQ: нечетные строки - 1 столбец, четные - 2 столбец.
 
Добрый день!

Подскажите, как разделить список по столбцам в Power Quer: нечетные строки - 1 столбец, четные - 2 столбец?

В таблице несколько столбцов, через Power Quer объединяю все столбцы объединяю в один, а далее необходимо разделить список по столбцам (как указано выше), после чего снова разделить на отдельные столбцы по разделителю.
Изменено: Дмитрий - 07.09.2021 13:29:11
 
Думаю есть более простой способ
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица"]}[Content],
    #"Добавлен индекс" = Table.AddIndexColumn(Источник, "Индекс", 1, 1),
    #"Добавлен индекс1" = Table.AddIndexColumn(#"Добавлен индекс", "Индекс.1", 0, 1),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Добавлен индекс1", "Пользовательская", each Number.IsEven([Индекс])),
    _false = Table.SelectRows(#"Добавлен пользовательский объект", each [Пользовательская] = false),
    _true= Table.SelectRows(#"Добавлен пользовательский объект", each [Пользовательская] = true),
_1=Table.NestedJoin(_false,{"Индекс"},_true,{"Индекс.1"},"NewColumnПТРДубли",JoinKind.FullOuter),
    #"Удаленные столбцы" = Table.RemoveColumns(_1,{"Индекс", "Индекс.1", "Пользовательская"}),
    #"Развернутый элемент NewColumnПТРДубли" = Table.ExpandTableColumn(#"Удаленные столбцы", "NewColumnПТРДубли", {"ID", "ADD", "FIO"}, {"ID.1", "ADD.1", "FIO.1"})
in
  #"Развернутый элемент NewColumnПТРДубли"
 
еще так можно:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица"]}[Content],
    col_names = Table.ColumnNames(Источник),
    col_names2 = List.Transform(col_names, each Text.From(_)&".2"),
    couple = Table.CombineColumns(Table.TransformColumnTypes(Источник, {{"ID", type text}}, "ru-RU"),col_names,Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Сведено"),
    spl = List.Split(Table.ToList(couple),2),
    to_cols = List.Transform(spl, each Table.Transpose(Table.FromList(_))),
    comb = Table.Combine(to_cols),
    split_cols1 = Table.SplitColumn(comb, "Column1", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), col_names),
    split_cols2 = Table.SplitColumn(split_cols1, "Column2", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), col_names2)
in
    split_cols2

слегка заморочено, но зато допускается любое кол-во столбцов в исходных данных
Изменено: Дмитрий(The_Prist) Щербаков - 07.09.2021 14:34:48
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо!

Очень интересное решение!
 
Может я чего не понял
Код
let
    a = Table.ToRows(Excel.CurrentWorkbook(){[Name="Таблица"]}[Content]),
    b = List.Split(List.Combine(a),6),
    c = List.Transform(b, each _&List.Repeat({null},6-List.Count(_)))
in
    Table.FromRows(c)
Страницы: 1
Наверх