Страницы: 1
RSS
Массовое переименование заголовков в Power Query
 
Добрый день, уважаемые Гении!
Прошу помочь с Power Query.

У меня таблица, на примере файла во вложении, нужно было заголовки собрать из 2 строк. Посмотрел видео по ссылке, сделал все так же, но в конце при List.Zip выходит ошибка
Цитата
Expression.Error: Ожидалось значение RenameOperations.
Сведения:
   [List]
Причем попробовал с тестовым файлом, все получилось.
Код
let
    Источник = Excel.Workbook(File.Contents("D:\Хазратхон\Учеба\power bi\Bob\2. Отчетная дата\Портфель\Портфель 01.01.2022.xlsx"), null, true),
    #"D:\Хазратхон\Учеба\power bi\Bob\2. Отчетная дата\Портфель\_Портфель 17.12.2021.xlsx" = Источник{[Item="Лист1",Kind="Sheet"]}[Data],
    Data = Источник{[Item="Лист1",Kind="Sheet"]}[Data],
    #"Добавлен пользовательский объект" = Table.AddColumn(Data, "Дата отчета", each Data{0}[Column2]),
    #"Разделить столбец по положению" = Table.SplitColumn(#"Добавлен пользовательский объект", "Дата отчета", Splitter.SplitTextByPositions({0, 10}, false), {"Дата отчета.1", "Дата отчета.2"}),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Разделить столбец по положению",{"Дата отчета.2"}),
    #"Пониженные заголовки" = Table.DemoteHeaders(#"Удаленные столбцы"),
    Лист1 = List.LastN(Record.ToList(#"Пониженные заголовки"{0}),1),
    Лист2 = List.FirstN(Record.ToList(#"Пониженные заголовки"{2}),205),
    ЗаголовкиЛист = Лист2&Лист1,
    Пользовательский1 = #"Пониженные заголовки",
    #"Удаленные верхние строки" = Table.Skip(Пользовательский1,3),
    Пользовательский2 = Table.RenameColumns(#"Удаленные верхние строки", List.Zip({Table.ColumnNames(#"Удаленные верхние строки"), ЗаголовкиЛист}))
in
    Пользовательский2
Спасибо!
Чайникам куда труднее, чем кажется!!
 
Именно с этой шапкой у меня не получается.

Опять ошибка :
Цитата
Expression.Error: Ожидалось значение RenameOperations.
Сведения:
   [List]
Вот что сделано, файл во вложении:
Код
let
    Источник = Excel.Workbook(File.Contents("C:\Users\Sultanhonov-5680\Desktop\тест.xlsx"), null, true),
    Лист1_Sheet = Источник{[Item="Лист1",Kind="Sheet"]}[Data],
    #"Повышенные заголовки" = Table.PromoteHeaders(Лист1_Sheet, [PromoteAllScalars=true]),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Повышенные заголовки", "Дата отчета", each 12),
    #"Разделить столбец по положению" = Table.SplitColumn(Table.TransformColumnTypes(#"Добавлен пользовательский объект", {{"Дата отчета", type text}}, "ru-RU"), "Дата отчета", Splitter.SplitTextByRepeatedLengths(1), {"Дата отчета.1", "Дата отчета.2"}),
    #"Измененный тип1" = Table.TransformColumnTypes(#"Разделить столбец по положению",{{"Дата отчета.1", Int64.Type}, {"Дата отчета.2", Int64.Type}}),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Измененный тип1",{"Дата отчета.2"}),
    #"Пониженные заголовки" = Table.DemoteHeaders(#"Удаленные столбцы"),
    Пользовательский1 = List.LastN(Record.ToList(#"Пониженные заголовки"{0}),1),
    Пользовательский2 = List.FirstN(Record.ToList(#"Пониженные заголовки"{1}),205),
    Пользовательский3 = Пользовательский2&Пользовательский1,
    Пользовательский4 = Table.DemoteHeaders(#"Удаленные столбцы"),
    #"Удаленные верхние строки" = Table.Skip(Пользовательский4,2),
    Пользовательский5 = Table.RenameColumns(#"Удаленные верхние строки", List.Zip({Table.ColumnNames(#"Удаленные верхние строки"), Пользовательский3}))
in
    Пользовательский5
Чайникам куда труднее, чем кажется!!
 
Так попробуйте
Код
let
    Источник = Excel.Workbook(File.Contents("D:\Downloads\тест (1).xlsx"), null, true),
    Лист1_Sheet = Источник{[Item="Лист1",Kind="Sheet"]}[Data],
    #"Повышенные заголовки" = Table.PromoteHeaders(Лист1_Sheet, [PromoteAllScalars=true]),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Повышенные заголовки", "Дата отчета", each 12),
    #"Разделить столбец по положению" = Table.SplitColumn(Table.TransformColumnTypes(#"Добавлен пользовательский объект", {{"Дата отчета", type text}}, "ru-RU"), "Дата отчета", Splitter.SplitTextByRepeatedLengths(1), {"Дата отчета.1", "Дата отчета.2"}),
    #"Измененный тип1" = Table.TransformColumnTypes(#"Разделить столбец по положению",{{"Дата отчета.1", Int64.Type}, {"Дата отчета.2", Int64.Type}}),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Измененный тип1",{"Дата отчета.2"}),
    #"Пониженные заголовки" = Table.DemoteHeaders(#"Удаленные столбцы"),
    Пользовательский1 = List.LastN(Record.ToList(#"Пониженные заголовки"{0}),1),
    Пользовательский2 = List.Transform(List.FirstN(Record.ToList(#"Пониженные заголовки"{1}),205), Text.From),
    Пользовательский3 = Пользовательский2&Пользовательский1,
    Пользовательский4 = Table.DemoteHeaders(#"Удаленные столбцы"),
    #"Удаленные верхние строки" = Table.Skip(Пользовательский4,2),
    zip = List.Zip({Table.ColumnNames(#"Удаленные верхние строки"), Пользовательский3}),
    Пользовательский5 = Table.RenameColumns(#"Удаленные верхние строки", zip)
in
    Пользовательский5
Изменено: Михаил Л - 08.01.2022 10:52:59
 
, Сделал все, как Вы сказали - ничего не вышло, опять та же ошибка!
Но спасибо, что отозвались
Буду очень благодарен, если дадите еще совет
Код
let
    Источник = Excel.Workbook(File.Contents("C:\Users\Sultanhonov-5680\Desktop\тест.xlsx"), null, true),
    Лист1_Sheet = Источник{[Item="Лист1",Kind="Sheet"]}[Data],
    #"Повышенные заголовки" = Table.PromoteHeaders(Лист1_Sheet, [PromoteAllScalars=true]),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Повышенные заголовки", "Дата отчета", each 12),
    #"Разделить столбец по положению" = Table.SplitColumn(Table.TransformColumnTypes(#"Добавлен пользовательский объект", {{"Дата отчета", type text}}, "ru-RU"), "Дата отчета", Splitter.SplitTextByRepeatedLengths(1), {"Дата отчета.1", "Дата отчета.2"}),
    #"Измененный тип1" = Table.TransformColumnTypes(#"Разделить столбец по положению",{{"Дата отчета.1", Int64.Type}, {"Дата отчета.2", Int64.Type}}),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Измененный тип1",{"Дата отчета.2"}),
    #"Пониженные заголовки" = Table.DemoteHeaders(#"Удаленные столбцы"),
    Пользовательский1 = List.LastN(Record.ToList(#"Пониженные заголовки"{0}),1),
    Пользовательский2 = List.Transform(List.FirstN(Record.ToList(#"Пониженные заголовки"{1}),205), Text.From),
    Пользовательский3 = Пользовательский2&Пользовательский1,
    Пользовательский4 = Table.DemoteHeaders(#"Удаленные столбцы"),
    #"Удаленные верхние строки" = Table.Skip(Пользовательский4,2),
    zip = List.Zip({Table.ColumnNames(#"Удаленные верхние строки"), Пользовательский2}),
    Пользовательский5 = Table.RenameColumns(#"Удаленные верхние строки", zip)
in
    Пользовательский5
Чайникам куда труднее, чем кажется!!
 
Так работает?
 
Рекомендую рассмотреть вариант решения в этой теме (в особенности шаг запроса CombineHeders)
 
попробуйте
Изменено: ATK - 08.01.2022 20:55:15
 
очень странно, в power query через эксель действительно работает, а вот через power bi выдает ошибку!
Так и не понял в чем была проблема, возможно есть символы какие-то в наименовании колонок...
В целом решил вопрос чуть по-другому.
Вот код:
Код
let
    Источник = Excel.Workbook(File.Contents("C:\Users\Sultanhonov-5680\Desktop\тест.xlsx"), null, true),
    Лист1_Sheet = Источник{[Item="Лист1",Kind="Sheet"]}[Data],
    #"Название Отчета" = Лист1_Sheet{0}[Column2],
    #"Разбить на слова" = Text.Split(#"Название Отчета", " "),
    #"В таблицу" = Table.FromList(#"Разбить на слова", Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Первоначальные заголовки" = Table.PromoteHeaders(Лист1_Sheet, [PromoteAllScalars=true]),
    #"Окончательные заголовки" = Table.PromoteHeaders(#"Первоначальные заголовки", [PromoteAllScalars=true]),
    #"добавить Дату отчета" = Table.AddColumn(#"Окончательные заголовки", "Дата отчета", each #"В таблицу"{0}[Column1])
in
    #"добавить Дату отчета"
Чайникам куда труднее, чем кажется!!
Страницы: 1
Наверх