|
|||||||
Переименовать столбцы по словарю элементов
Время создания: 17.03.2022 17:21
Текстовые метки: Power Query, ColumnNames, renameColumn
Раздел: Разные закладки - MSO - Excel - Power Query
Запись: xintrea/mytetra_db_adgaver_new/master/base/16475268629mv10meje3/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
let Источник = main_Data1, //список имен столбцов таблицы List_NamesBuffered = List.Buffer( Table.ColumnNames( Источник ) ), //список новых имен столбцов таблицы List_NewNames = List_Cln_Name_New( Источник ), //комбинируем списки Количество элементов должно совпадать List_CombineColumnNames = List.Zip({List_NamesBuffered, List_NewNames}), //переименовываем столбцы Result = Table.RenameColumns( Источник, List_CombineColumnNames ) in Result
//List_Cln_Name_New //ищет в таблице-словаре имена по элементам столбцов let Источник = (t_Table as table) => let
Источник = t_Table, //---------------------------------------------------------------------------------------- //список имен столбцов таблицы List_NamesBuffered = List.Buffer( Table.ColumnNames( Источник ) ), //заполниь все пустоты во всех столбцах #"Заполнено вверх" = Table.FillUp(Источник,List_NamesBuffered), //Заменить NULL #"Замененное значение" = Table.ReplaceValue(#"Заполнено вверх",null,"-",Replacer.ReplaceValue,List_NamesBuffered), //Сформировать заготовку для словаря #"Отменено свертывание только для выбранных столбцов" = Table.Unpivot(#"Замененное значение", List_NamesBuffered, "Key1", "Item"), //Индекс записй для последующей сортировки #"Добавлен индекс" = Table.AddIndexColumn(#"Отменено свертывание только для выбранных столбцов", "Индекс", 0, 1, Int64.Type), //Сносим все дубли #"Удаленные дубликаты" = Table.Distinct(#"Добавлен индекс", {"Key1"}), //----------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------- //добавляем таблицу-словарь (Имена столбцов-элементы) #"Объединенные запросы" = Table.NestedJoin(#"Удаленные дубликаты", {"Item"}, t_Cri_Item, {"Item"}, "t_Cri_Item", JoinKind.LeftOuter), #"Развернутый элемент t_Cri_Item" = Table.ExpandTableColumn(#"Объединенные запросы", "t_Cri_Item", {"Nb", "Key"}, {"Nb", "Key"}), //восстанавливаем изначальную сортировку #"Сортированные строки" = Table.Sort(#"Развернутый элемент t_Cri_Item",{{"Индекс", Order.Ascending}}), //если номер пустой, то оставляем изначальное имя столбца, если нет, то формируем новое (Номер-Имя) #"Условный столбец добавлен" = Table.AddColumn(#"Сортированные строки", "Пользовательский", each if [Nb] = null then [Key1] else [Nb]&"-"&[Key]), //Удаляем все лишние столбцы #"Другие удаленные столбцы" = Table.SelectColumns(#"Условный столбец добавлен",{"Пользовательский"}), // Формируем список Пользовательский = #"Другие удаленные столбцы"[Пользовательский] in Пользовательский in Источник
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|