Страницы: 1
RSS
Как в таблице запроса Power Query переименовать одновременно несколько столбцов по условию ?
 
В PQ имеется 2 таблицы:
1. таблица с названиями столбцов типа "2020 Прибыль", "2021 Прибыль", "2022 Прибыль" + вместо "...Прибыль" - еще множество других показателей с указанием тех же годов аналогичным образом (если кто выгружает отчеты с показателями из СПАРК - поймет)
2. таблица с названиями столбцов типа "Прибыль Год1", "Прибыль Год2", "Прибыль Год3" + аналогично другие показатели с указанием годов также (по факту - те же столбцы из п.1, но переименованные вручную - так надо было, теперь надо переименовать в другой вид, но автоматически).

Необходимо,  чтобы во второй таблице названия столбцов получились "Прибыль 2020", "Прибыль 2021", "Прибыль 2022".....

Т.е. необходимо взять из первой таблицы 3 значения года (не важно от какого показателя - для любого показателя значения 3х лет будут одинаковые и идти в одном порядке) и подставить их во вторую таблицу вместо соответствующих значений "Год1", "Год2", "Год3".
Т.е. как понимаю надо вытащить 3 значения года из названий столбцов первой таблицы и сделать замену текста "Год1..Год 2 ...Год3" во второй таблице на соответствующие вытащенные значения из 1ой таблицы. Года в 1ой таблице потом будут меняться, но всегда их будет 3 значения и всегда они будут идти от меньшего к большему.

Столбцов несколько сотен, поэтому ничего руками делать не вариант.
Изменено: voler83 - 22.11.2022 10:17:27
 
Цитата
voler83 написал:
руками делать не вариант
Почему не вариант? Можно вручную переименовывать. Или правила форума прочитать
 
Цитата
написал:
Цитата
voler83 написал:
руками делать не вариант
Почему не вариант? Можно вручную переименовывать. Или правила форума прочитать
я не знаю, какие года будут в таблице в п.1 при новой выгрузке данных, не знаю на какие значения заменять
 
voler83, а правила читали?
 
Цитата
написал:
voler83, а правила читали?
я не прошу сделать какую-то работу за меня, мне  будет достаточно наименований функций/их сочетания для переименования списка названий  полей таблицы и их "загрузки" обратно в таблицу, мои примеры полностью абстрактны и могут использоваться любые другие, в которых необходима замена значений в именах столбцов, не знаю, в чем нарушение
 
voler83,
Table.ToColumns
Table.FromColumns
Table.ColumnNames
List.Transform
List.Distinct
List.Select
List.Sort
Number.From
Text.AfterDelimiter
Изменено: surkenny - 22.11.2022 13:49:36
 
List.Zip  :)

Нарушений нет. И нет примера(в правилах написано об этом).
Изменено: Михаил Л - 22.11.2022 14:26:15
 
Частично придумал - понизил заголовки до строки - транспонировал таблицу (заголовки стали в одном столбце) - как-то сделаю замену "год 1..2..3" на значения годов реальные и обратно транспонирую/повышу до заголовков
 
Цитата
Михаил Л написал:
List.Zip  
с моими первыми двумя не нужно :)
 
Цитата
voler83 написал:
Частично придумал - понизил заголовки до строки - транспонировал таблицу
я представляю, как это будет работать на миллионах строк :)
Удачи:) Не хотите делать пример - Ваше право решить медленным способом :)
 
Цитата
написал:
Цитата
voler83 написал:
Частично придумал - понизил заголовки до строки - транспонировал таблицу
я представляю, как это будет работать на миллионах строк
Удачи:) Не хотите делать пример - Ваше право решить медленным способом
Миллиона строк нет, но м.быть пару десятков тысяч, это накладывает ограничения на макс кол-во столбцов в PQ 16 тыс , об этом я не подумал (не знаю, заругается ли PQ в таком случае или выкинет лишние столбцы при транспонировании).  Я прошелся по вашим функциям и понял, что сходу не могу их поженить, а транспонирование быстрее придумалось. Но я просто вместо транспонирования всей таблицы, возьму только строку заголовков, обработаю ее и вставлю объединением запросов как новую строку и повышу ее до заголовков, пока так придумалось быстрее.
Изменено: voler83 - 22.11.2022 16:18:49
Страницы: 1
Наверх