Страницы: 1
RSS
Power Qwery. изменение названий столбцов, на основании данных в другой таблице., Как переименовать заголовки, используя отдельную таблицу справочник.
 
Здравствуйте, Уважаемые!

Имеется таблица, с N количеством столбцов, каждый из которых имеет системное название в своем заголовке. так как это хранится в базе.
И есть вторая таблица, справочник, который содержит в себе соответствие системных полей, названиям, понятным пользователю.
что то типа
fioФИО
countryСтрана
postIndexИндекс
Обе таблицы затягиваются в  PowerQwery по API.

Но, этот справочник имеет меньшее количество названий для столбцов, чем столбцов в таблице из базы.
И это сломало используемый мной метод, когда справочник транспонировался, объединялся с таблицей базы и повышались заголовки.
Это имеет смысл только если соответствие столбцов один к одному. А в моем случае получилось, что столбцы вне справочника, изначально имеющие системное название становятся безымянными.

Нужен другой способ.
Подкиньте идею, пожалуйста!
 
У вас в списке есть лишнее поле email, которого нет в данных, оно должно быть в итоговой таблице?
В общем если отсутствующих полей добавлять не нужно, то делаем так:
Код
let
    Custom1 = List.Zip(Table.ToColumns(Excel.CurrentWorkbook(){[Name="поля"]}[Content])),
    Source = Excel.CurrentWorkbook(){[Name="Таблица3"]}[Content],
    RenamedColumns = Table.RenameColumns(Source,Custom1,MissingField.Ignore)
in
    RenamedColumns

Если надо добавлять то так:
Код
let
    Custom1 = Excel.CurrentWorkbook(){[Name="поля"]}[Content],
    Names = List.Zip(Table.ToColumns(Custom1)),
    Source = Excel.CurrentWorkbook(){[Name="Таблица3"]}[Content],
    RenamedColumns = Table.PromoteHeaders(Table.Skip(Table.Transpose(Custom1),1)) & Table.RenameColumns(Source,Names,MissingField.Ignore)
in
    RenamedColumns
Изменено: PooHkrd - 28.02.2020 14:36:54
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
В общем если отсутствующих полей добавлять не нужно, то делаем так:
Спасибо! Я знал что есть человеческий способ, без танцев с бубном) то что надо!
Премного благодарен))
 
Zabubu, чутка перемудрил вначале, вместо:
Код
List.Zip( Table.ToColumns( table ) )

проще написать сразу так:
Код
Table.ToRows( table )
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
У вас в списке есть лишнее поле email, которого нет в данных, оно должно быть в итоговой таблице?
Цитата
Zabubu написал:
Спасибо!
Позвольте коллеги поинтересоваться - это модная тенденция - не отвечать на поставленные вопросы?  :D
 
Цитата
Андрей VG написал:
это модная тенденция
Синдром: Google фильтрация :)  Вижу что хочу видеть
 
Цитата
Андрей VG написал:
не отвечать на поставленные вопросы?  
Прошу прощения если мои измышления оказались не понятны,
было представлено 2 варианта, я процитировал нужный и за него поблагодарил :)

В моем случае это первый вариант когда полей добавлять полей не нужно)
Страницы: 1
Наверх