Удаляем текст в скобках (без регулярок и СМС)
#АнатомияФункций – приёмы
Всем привет!
Сегодня разбираем задачку «Как можно в столбце удалить все значения в скобках?».
Для начала решим «строго по условию»:
Делим строго по скобкам… но как-то сложно и медленно.
ОК, что насчёт рекурсии?
Так, как минимум, быстрее, да и поприкольнее.
Вот только надо ли оно всё?
Если больше не к чему привязаться – надо, а в конкретном случае можно:
Бонус на формулах и объяснение того, что тут к чему, как всегда, смотрим на Ютубе
Лайк, коммент, подписка приветствуются )))
Надеюсь, было полезно.
Всех благ!
@buchlotnik
#АнатомияФункций – приёмы
Всем привет!
Сегодня разбираем задачку «Как можно в столбце удалить все значения в скобках?».
Для начала решим «строго по условию»:
let
f=(x)=>[a=List.Transform(List.Split({-1}&List.RemoveLastN(Text.PositionOfAny(x,{"(",")"},Occurrence.All),1),2),(x)=>{x{0}+1,x{1}-x{0}-1}),
b=Text.Combine(Splitter.SplitTextByRanges(a)(x))][b],
from = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
to = Table.TransformColumns(from,{"Столбец1",f})
in
to
Делим строго по скобкам… но как-то сложно и медленно.
ОК, что насчёт рекурсии?
let
f=(x)=>[a=Text.PositionOf(x,"("),
b=if a = -1 then x else @f(Text.RemoveRange(x,a,Text.PositionOf(x,")")-a+1))][b],
from = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
to = Table.TransformColumns(from,{"Столбец1",f})
in
to
Так, как минимум, быстрее, да и поприкольнее.
Вот только надо ли оно всё?
Если больше не к чему привязаться – надо, а в конкретном случае можно:
let
f=(x)=>Text.Combine(List.Transform(Text.Split(x,", "),(x)=>Text.Split(x,"("){0}),", "),
from = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
to = Table.TransformColumns(from,{"Столбец1",f})
in
to
let
f=(x)=>Text.Combine(List.Select(Text.SplitAny(x,"(,"),(x)=>not Text.Contains(x,")")),","),
from = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
to = Table.TransformColumns(from,{"Столбец1",f})
in
to
let
f=(x)=>Text.Combine(List.Alternate(Text.SplitAny(x,"(,"),1,1,1),", "),
from = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
to = Table.TransformColumns(from,{"Столбец1",f})
in
to
Бонус на формулах и объяснение того, что тут к чему, как всегда, смотрим на Ютубе
Лайк, коммент, подписка приветствуются )))
Надеюсь, было полезно.
Всех благ!
@buchlotnik