Страницы: 1
RSS
[Power Query] Как разделить по уровням иерархии по пробелам перед текстом
 
Добрый день!

Делаю отчет в Power BI, для этого необходимо разбить на уровни первый столбец.
Как это можно организовать?

Спасибо!
Изменено: Propserus - 19.02.2020 09:24:55
 
Так можно:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
    #"Added Custom" = Table.AddColumn(#"Promoted Headers", "Пользовательская", each (Text.Length([Причина]) - Text.Length(Text.TrimStart([Причина]))) / 4 + 1 )
in
    #"Added Custom"
Изменено: PooHkrd - 19.02.2020 09:32:59 (чутка подправил код, поначалу малость перемудрил, хотя результат тот же)
Вот горшок пустой, он предмет простой...
 
Как вариант с учетом только ведущих пробелов:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Столбец1", type text}, {"Столбец2", type any}, {"Столбец3", type any}, {"Столбец4", type any}, {"Столбец5", type any}, {"Столбец6", type any}, {"Столбец7", type any}, {"Столбец8", type any}}),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Измененный тип", "Уровень", each Text.PositionOfAny([Столбец1],{"A".."z","А".."я","Ё","ё"})/4+1)
in
    #"Добавлен пользовательский объект"
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Доброе время  суток
Цитата
Дмитрий(The_Prist) Щербаков написал:
Как вариант с учетом только ведущих пробелов:
Дмитрий, а тогда может лучше использовать Text.TrimStart? Хотя конечно понимаю, что ответ на скорую руку при такой конкуренции среди отвечающих - как когда-то было по другим направлениям Excel :)
 
Цитата
Андрей VG написал:
может лучше использовать  Text.TrimStart ?
может :) На скорость не тестировал. Но до кучи опубликуем:
Код
Table.AddColumn(#"Измененный тип", "Пользовательский.1", each (Text.Length([Столбец1])-Text.Length(Text.TrimStart([Столбец1]))) / 4 + 1)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
может
Тогда получился код такой же как и у Алексея. Он этот момент в тихаря подправил  :D
 
Цитата
Андрей VG написал:
ответ на скорую руку
Лично я стараюсь отвечать не на скорость, а на производительность. Пока вот товарищ такое не спросил про существование TrimStart даже и не подозревал, а тут в справочник глянул, а он тут.
Вот горшок пустой, он предмет простой...
 
В Power Query запрос прекрасно отработался, спасибо!

А теперь не понимаю, как этот запрос сразу организовать в Power BI? Если брать Source как в коде, то пишет, что "Не найдена таблица Excel с именем "Таблица1"

BI и PQ только начал осваивать, так что сильно не пинайте))

Я правильно понимаю, чтобы во все это понимать, необходимо изучить язык "М"?
Изменено: Propserus - 19.02.2020 10:06:30
 
Цитата
Андрей VG написал:
Он этот момент в тихаря подправил
У меня сначала в голове засело что делать надо через Text.Trim, но пробелы в конце строки мешают, потом смотрю есть Text.TrimEnd ну и сляпал вот такое.
Код
= let t = Text.TrimEnd([Причина]) in (Text.Length(t) - Text.Length(Text.Trim(t))) / 4 + 1

А потом уже допер что проще сразу через TrimStart делать, а не огородами. Инертность мышления растудыть её. :D
Вот горшок пустой, он предмет простой...
 
Цитата
Propserus написал:
организовать в Power BI
может надо было и озвучивать это сразу? :)
Сделайте запрос к файлу в Power BI и подставьте туда потом только нужные шаги(нужен то только последний с пользовательским столбцом)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх