Splitter 6 - Splitter.SplitTextByRepeatedLengths, Splitter.SplitTextByLengths или когда длина имеет значение…
#АнатомияФункций - Splitter.SplitTextByRepeatedLengths, Splitter.SplitTextByLengths
Всем привет!
Продолжаем тему сплиттеров. Сегодня на повестке:
Оба сплиттера вообще не ориентируются на подстроки и конкретные символы – их интересует только необходимая длина подстроки.
Смотрим примеры:
-приводим в божеский вид МАС-адреса (разбираем строку по 2 символа)
- делаем «красивое» текстовое представление чисел (обращаем внимание на второй аргумент – разбираем по тройкам с конца)
- наводим порядок в номерах телефонов (задаём нужные длины с конца, обращаем внимание, что в итоге вынимаются не все символы, а только текст заданных длин):
Как-то так – функции нечасто используемые, но в отдельных случаях прям мастхев)
… демонстрация работы с комментариями, как всегда, на Ютубе
Лайк, коммент, подписка приветствуются )))
Надеюсь, было полезно.
Всех благ!
@buchlotnik
#АнатомияФункций - Splitter.SplitTextByRepeatedLengths, Splitter.SplitTextByLengths
Всем привет!
Продолжаем тему сплиттеров. Сегодня на повестке:
Splitter.SplitTextByRepeatedLengths(length as number, optional startAtEnd as nullable logical)
Splitter.SplitTextByLengths(lengths as list, optional startAtEnd as nullable logical)
Оба сплиттера вообще не ориентируются на подстроки и конкретные символы – их интересует только необходимая длина подстроки.
Смотрим примеры:
-приводим в божеский вид МАС-адреса (разбираем строку по 2 символа)
let
from = #table({"MAC"},{{"001A2B3C4D5E"},{"0815752B9ADC"},{"096C2ABD7534"}}),
f=(x)=>Combiner.CombineTextByDelimiter("-")(Splitter.SplitTextByRepeatedLengths(2)(x)),
to = Table.TransformColumns(from,{"MAC",f})
in
to
- делаем «красивое» текстовое представление чисел (обращаем внимание на второй аргумент – разбираем по тройкам с конца)
let
from = #table({"num"},{{1},{12},{123},{1234},{12345},{1234567},{12345678}}),
f=(x)=>Text.Combine(Splitter.SplitTextByRepeatedLengths(3,true)(Text.From(x))," "),
/*хотя можно и Number.ToText(x,"N0")*/
to = Table.TransformColumns(from,{"num",f})
in
to
- наводим порядок в номерах телефонов (задаём нужные длины с конца, обращаем внимание, что в итоге вынимаются не все символы, а только текст заданных длин):
let
from = #table({"tel"},{{"+79871234567"},{"89876543210"}}),
f=(x)=>[a=Splitter.SplitTextByLengths({2,2,3,3},true)(x),
b=Text.Format("+7 (#{0}) #{1}-#{2}-#{3}",a)][b],
to = Table.TransformColumns(from,{"tel",f})
in
to
Как-то так – функции нечасто используемые, но в отдельных случаях прям мастхев)
… демонстрация работы с комментариями, как всегда, на Ютубе
Лайк, коммент, подписка приветствуются )))
Надеюсь, было полезно.
Всех благ!
@buchlotnik