Страницы: 1
RSS
Преобразование таблицы в Power Query
 
Добрый день!

Прошу помочь преобразовать таблицу с помощью Power Query.
Дано: файл Excel содержит таблицу с двумя колонками. В первой колонке отражается информация в виде следующей структуры: Проект=> Отдел=> Статья затрат. Во второй колонке отображаются суммы.
Необходимо представить данную таблицу в виде 4-х колонок: 1) статья затрат; 2) отдел; 3) проект; 4) суммы
Все статьи начинаются с 000
Все отделы начинаются с чисел: 1., 2., 3., и т.д.
Все проекты начинаются с наименования и не имеют каких-либо кодов.
Пример как есть и как должно быть во вложении.

Заранее спасибо большое за помощь!
Изменено: Alyona - 21.09.2020 16:54:24
 
Если по быстрому кнопочками, то так:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Столбец1", type text}, {"Столбец2", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Статья", each if Text.StartsWith( [Столбец1], "000" ) then [Столбец1] else null, Text.Type),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Проект", each if [Статья]=null and (try Text.InferNumberType( Text.Start( [Столбец1], 1 ) ))[HasError] then [Столбец1] else null, type text),
    #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Отдел", each if [Статья] = null and [Проект] = null then [Столбец1] else null),
    #"Filled Down" = Table.FillDown(#"Added Custom2",{"Проект", "Отдел"}),
    #"Filtered Rows" = Table.SelectRows(#"Filled Down", each ([Статья] <> null)),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Столбец1"})
in
    #"Removed Columns"
Вот горшок пустой, он предмет простой...
 
PooHkrd,

Спасибо большое! Результат выглядит именно так, как требуется! Только у меня при воспроизведении запроса на шаге "Added Custom1" выходит следующая ошибка:

Expression.Error: The name 'Text.InferNumberType' wasn't recognized.  Make sure it's spelled correctly.

Подскажите, пожалуйста, с чем это может быть связано? Я пробовала открыть файл в версии Excel 2013 и 2019: ошибка выходит в обеих версиях.
 
Alyona, вот только захочешь по выпендриваться и на тебе, несовместимость. Просто эта функция Text.InferNumberType работает только в О365. Замените её на Number.From должно сработать также.  ;)
Вот горшок пустой, он предмет простой...
 
PooHkrd,

Да, действительно всё получилось)) Супер! Спасибо!
 
У меня тоже О365, но тоже пишет "Expression.Error: Имя "Text.InferNumberType" не распознано. Убедитесь в том, что оно написано верно."
P.S. Я знаю, что можно заменить на Number.From. Это просто для информации
P.P.S. Версий PQ 64-разрядная версия 2.68.5432.241
Изменено: New - 21.09.2020 18:17:08
 
New, накатите обновы. Появится. У меня версия 2.72ххххх что-то такое. Сейчас не за компом.
Самая актуальная на текущий момент 2.86хххххх вроде.
Изменено: PooHkrd - 21.09.2020 18:25:37
Вот горшок пустой, он предмет простой...
 
понял, спасибо... надо попросить админа... (комп рабочий)
 
New, чуть соврал, вот моя версия.
Вот горшок пустой, он предмет простой...
Страницы: 1
Наверх