Splitter 3 - Splitter.SplitTextByDelimiter, Splitter.SplitTextByAnyDelimiter или когда порядок имеет значение…
#АнатомияФункций - Splitter.SplitTextByDelimiter, Splitter.SplitTextByAnyDelimiter
Всем привет!
Продолжаем разбор сплиттеров. Сегодняшние пациенты:
Первый делит текс по указанному разделителю, второй – по набору разделителей.
Вместо кучи слов смотрим на пример:
to, to1 - поделилось только по пробелу
to2,to3 - сравниваем результат, выясняем, что порядок имеет значение
to4, to5 – просто демонстрация, что набор разделителей может быть разным
Что касается дополнительных аргументов, тоже есть кейс:
to -решили проблему через quoteStyle, to1 – через startAtEnd
Ну и на закуску просто прикольный пример, тоже про сплиттеры )))
А что тут к чему смотрите в обзоре на Ютубе
Лайк, коммент, подписка приветствуются )))
Надеюсь, было полезно.
Всех благ!
@buchlotnik
#АнатомияФункций - Splitter.SplitTextByDelimiter, Splitter.SplitTextByAnyDelimiter
Всем привет!
Продолжаем разбор сплиттеров. Сегодняшние пациенты:
Splitter.SplitTextByDelimiter(delimiter as text, optional quoteStyle as nullable number) as function
Splitter.SplitTextByAnyDelimiter(delimiters as list, optional quoteStyle as nullable number, optional startAtEnd as nullable logical) as function
Первый делит текс по указанному разделителю, второй – по набору разделителей.
Вместо кучи слов смотрим на пример:
let
from = #table({"num","txt"},{{1,"мама мыла раму"},{2,"мама мыла раму"},{3,"мама,мыла, раму"},{4,"мамаоченьмылачастораму"}}),
to = Table.SplitColumn(from,"txt",Splitter.SplitTextByDelimiter(" ")),
to1 = Table.SplitColumn(from,"txt",Splitter.SplitTextByAnyDelimiter({" "})),
to2 = Table.SplitColumn(from,"txt",Splitter.SplitTextByAnyDelimiter({" "," "})),
to3 = Table.SplitColumn(from,"txt",Splitter.SplitTextByAnyDelimiter({" "," "})),
to4 = Table.SplitColumn(from,"txt",Splitter.SplitTextByAnyDelimiter({" "," ",", ",","})),
to5 = Table.SplitColumn(from,"txt",Splitter.SplitTextByAnyDelimiter({" "," ",", ",",","очень","часто"}))
in
to5
to, to1 - поделилось только по пробелу
to2,to3 - сравниваем результат, выясняем, что порядок имеет значение
to4, to5 – просто демонстрация, что набор разделителей может быть разным
Что касается дополнительных аргументов, тоже есть кейс:
let
from = Excel.CurrentWorkbook(){[Name="Таблица"]}[Content],
to = Table.AddColumn(from,"Номер",(x)=>List.Last(Splitter.SplitTextByDelimiter("ИИН/БИН ",QuoteStyle.None)(x[#"Наименование бенефициара / отправителя"]))),
to1 = Table.AddColumn(from,"Номер",(x)=>List.Last(Splitter.SplitTextByAnyDelimiter({"ИИН/БИН "},null,true)(x[#"Наименование бенефициара / отправителя"])))
in
to1
to -решили проблему через quoteStyle, to1 – через startAtEnd
Ну и на закуску просто прикольный пример, тоже про сплиттеры )))
let
from = Excel.CurrentWorkbook(){[Name="Таблица"]}[Content],
f=(x)=>Function.Invoke(Record.FromList,List.Zip(List.Split(Splitter.SplitTextByAnyDelimiter({", "," "})(x),2))),
tr = Table.TransformColumns(from,{"Данные",f}),
nms = List.Distinct(List.Combine(List.Transform(tr[Данные],Record.FieldNames))),
to = Table.ExpandRecordColumn(tr, "Данные",nms)
in
to
А что тут к чему смотрите в обзоре на Ютубе
Лайк, коммент, подписка приветствуются )))
Надеюсь, было полезно.
Всех благ!
@buchlotnik