Страницы: 1
RSS
Power Query про замену кучи пробелов в столбце на 1 разделитель
 
Добрый день.

Видел тут один вопрос и ответы про аналог СЖПРОБЕЛЫ в Power query, но что-то не получилось у себя это применить, запутался с решением Андрея VG...)). Сплиты и тримы ввели в ступор немного...

Вопрос такой. Есть таблица из 1-го столбца, в которой к сожалению кол-во пробелов между значениями не зафиксировано - плавает (такая выгрузка из системы), нужно в Power query сократить все эти пробелы до одного, либо заменить на точку.

Далее по одному разделителю я поделю по столбцам сам, но самое главное - сперва избавиться от кучи этих пробелов!
Помогите пожалуйста)) Заранее спасибо!
 
Raven2009, так подойдет?
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Renamed Columns" = Table.RenameColumns(Источник,{{"Признак ZM/ZHM pcb         spcb        pal         couche ", "Признак"}}),
    #"Added Index" = Table.AddIndexColumn(#"Renamed Columns", "Индекс", 0, 1),
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Added Index", {{"Признак", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Признак"),
    #"Filtered Rows" = Table.SelectRows(#"Split Column by Delimiter", each [#"Признак"] <> null and [#"Признак"] <> ""),
    Custom1 = Table.Group(#"Filtered Rows", {"Индекс"}, {{"Признак", each Text.Combine(_[Признак], "."), type text}}),
    #"Removed Other Columns" = Table.SelectColumns(Custom1,{"Признак"})
in
    #"Removed Other Columns"
 
Здесь смотрели? Там готовая функция есть.
З.Ы. вот, поколдовал. Так надо?
Изменено: PooHkrd - 05.11.2019 23:33:12
Вот горшок пустой, он предмет простой...
 
такое родилось:
Скрытый текст
Соблюдение правил форума не освобождает от модераторского произвола
 
До кучи
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    a = (a) => Splitter.SplitTextByWhitespace()(Text.Trim(a)),
    b = (b) => {b{0}&" "&b{1}}&List.Skip(b,2),
    c = (c) => Table.SplitColumn(Source,c,a,b(a(c)))
in
    c(Table.ColumnNames(Source){0})
 
Цитата
PooHkrd написал:
Здесь  смотрели?
на иностранные ресурсы не заглядывал. Спасибо вам!)

Всем большое спасибо за помощь! Потестирую в ближайшее время все способы)
 
Разделение столбца можно сделать за 1 шаг с помощью стандартной функции Splitter.SplitTextByWhitespace
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Разделить столбец по разделителю" = Table.SplitColumn(Источник, "Признак ZM/ZHM pcb         spcb        pal         couche ", Splitter.SplitTextByWhitespace(QuoteStyle.None), {"Признак ZM/ZHM", "pcb", "spcb", "pal", "couche"})
in
    #"Разделить столбец по разделителю"

Или то же самое, но код разделен на несколько строк для удобочитаемости
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Разделить столбец по разделителю" =
        Table.SplitColumn(
            Источник,
            "Признак ZM/ZHM pcb         spcb        pal         couche ",
            Splitter.SplitTextByWhitespace(QuoteStyle.None),
            {"Признак ZM/ZHM", "pcb", "spcb", "pal", "couche"}
        )
in
    #"Разделить столбец по разделителю"


Кстати, если в данных есть неразрывные пробелы (с кодом 160), символы табуляции и т.д., Splitter.SplitTextByWhitespace тоже легко с этим справляется
Изменено: neophyte - 20.10.2022 12:12:24
 
Самый простой способ-Текст по столбцам.
Страницы: 1
Наверх