Страницы: 1
RSS
PQ Повысить заголовки из второй строки оставив первую
 
Добрый день!
Собираю данные из файлов, создаваемых другими сотрудниками. Повлиять на структуры заполнения нет возможности.
Суть проблемы: мне нужно поднять в заголовки вторую строку, при этом оставив первую. Однако во второй строке есть повторяющиеся значения (план, наценка), что мешает мне сразу переименовать столбцы  используя List.Zip. Во вложении пример и вариант того, как мне удалось это сделать. Думаю, что это далеко не самый оптимальный вариант, так как опыта у меня не много.
Прошу помочь в решении данного вопроса.
 
Стесняюсь спросить, а зачем это все? Что потом планируете делать с итоговой таблицей?
Вот горшок пустой, он предмет простой...
 
Из данной таблицы мне нужны общие планы по номенклатурным группам по региону  и направлению, фактически первые четыре столбца. Файлы собираются за 12 месяцев. Каждый файл имеет несколько таких таблиц на листе, где в строке над таблицей указывается регион и направление, из них я планирую через условный столбец брать регион и направление. Таблицы на листе расположены четко друг под другом. Так как количество столбцов в файлах может быть различным (пустой столбец перед таблицей или не заполненные в конце), не хотелось бы жестко привязываться к названию столбца при переименовании.
 
Andrey_S,  мне кажется вот этот прием это как раз то что нужно вам
https://www.planetaexcel.ru/techniques/8/15152/
 
Andrey_S, это все понятно. Не понятно зачем вам на выходе не плоская таблица, а вот этот монстр? Что вы из него хотите проанализировать?
Оно как бы можно показать как сделать то что вы хотите проще, но не понятно зачем.
Вот горшок пустой, он предмет простой...
 
PooHkrd, так я как раз и хочу плоскую :)
Для графического отображения план продаж и факта по направлениям и регионам мне нужно собрать планы. Как я уже писал ранее, планы продаж заполняются в файле в виде таблиц, с разбитием до торговых представителей. Мне нужно четыре первых столбца, они итоговые (номенклатурная группа, план продаж, %, наценка). Далее добавлю условный столбец, где из строки над таблицей будут браться регион и направление продаж. Далее данные фильтруются и на выходе получаем плоскую таблицу по направлениям, регионам, номенклатурным группам. Только не хочется жестко привязываться к названиям столбцов.
Изменено: Andrey_S - 18.02.2021 16:31:39
 
Код
a = Table.Combine({Table.Range(Таблица,1,1),Таблица}),
b = Table.PromoteHeaders(a)
Наверное перемудрил в первом решении, все решил намного проще.
Все спасибо за советы!
Изменено: Andrey_S - 18.02.2021 16:57:59
 
Т.е. итог нужен такой?
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    SelectedColumns = Table.SelectColumns(Source,{"Столбец1", "Столбец2", "Столбец3", "Столбец4"}),
    RemovedTopRows = Table.Skip(SelectedColumns,1),
    PromotedHeaders = Table.PromoteHeaders(RemovedTopRows, [PromoteAllScalars=true]),
    ChangedType = Table.TransformColumnTypes(PromotedHeaders,{{"Номенклатурная группа", type text}, {"Сумма плана ", Int64.Type}, {"% наценки", type number}, {"Наценка", type number}}),
    Custom = Table.AddColumn(ChangedType, "Регион", each SelectedColumns[Столбец1]{0}, Text.Type)
in
    Custom
Вот горшок пустой, он предмет простой...
 
PooHkrd, да. Спасибо!
Страницы: 1
Наверх