Страницы: 1
RSS
Как развернуть таблицу построчно блоками из трех строк, Power Query
 
Приветствую.

Никак не могу справится со следующей ситуацией. Помогите пож-та.

Имеется выгрузка сотрудников из АРМ отдела кадров. Каждое поле базы данных (сотрудник) представлено в выгрузке тремя строками.
ФИО - 3 строки, Адрес - 3 строки, организация - 3 строки и т.д. по столбцам.
Как развернуть информацию по каждому сотруднику так, чтобы она располагалась в одну строку?

Пример прилагается.

Спасибо
Если не можешь победить беспорядок, то надо возглавить его.
 
del
Изменено: buchlotnik - 23.08.2021 17:58:05
Соблюдение правил форума не освобождает от модераторского произвола
 
Доброе время суток.
Ещё вариант.
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    groupColumnNames = List.Combine(List.Transform(List.Range(Table.ColumnNames(Source), 1), (field) => List.Transform({"1".."3"}, each field & "." & _))),
    group = Table.Group(Source, {"номер"}, {"temp", each Table.FromRows({List.Combine(Table.ToColumns(Table.RemoveColumns(_, {"номер"})))}, groupColumnNames)}),
    expanded = Table.ExpandTableColumn(group, "temp", groupColumnNames)
in
    expanded
 
Ох ешкин кот. Как быстро сделали)
buchlotnik,Андрей VG.Благодарю за помощь.
Все отлично получилось.
Ночь можно спать уже спокойно. А с кодом завтра уже разберусь + в копилку идей.
Если не можешь победить беспорядок, то надо возглавить его.
 
Цитата
Александр Медведев написал:
А с кодом завтра уже разберусь
Чтоб завтра не было скучно
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    suffixes = {"1".."3"},
    withFieldCombiner = (field) => (item) => field & "." & item,
    transformer = (collection, combiner) => (field) => List.Transform(collection, combiner(field)),
    nameExtractor = (start) => (source) => List.Range(Table.ColumnNames(source), start),
    columnExtractor = (nameExtractor, start) => (source) => Table.SelectColumns(source, nameExtractor(start)(source)),
    groupColumnNames = List.Combine(List.Transform(nameExtractor(1)(Source), transformer(suffixes, withFieldCombiner))),
    group = Table.Group(Source, {"номер"}, {"temp", each Table.FromRows({List.Combine(Table.ToColumns(columnExtractor(nameExtractor, 1)(_)))}, groupColumnNames)}),
    expanded = Table.ExpandTableColumn(group, "temp", groupColumnNames)
in
    expanded
Страницы: 1
Наверх