Прошу помочь с решением. Имеется таблица, у которой в одной ячейке содержатся даты, текст, перенос строки: #(lf)
В [Поле 2], в первой ячейке после каждой записи содержится перенос строки. Необходимо оставить только даты с перечислением через "; "
У меня возникли сложности с тем, чтобы удалить следующие сценарии: 1. Текст + перенос строки - могу удалить только текст, а не связку 2. Перенос строки как первая запись - не могу удалять перенос строки, т.к. использую его для замены на "; " Иногда помогает Trim.
Благодаря помощи формучан (ссылка, ссылка) я составил запрос на чистку записей от текста:
Код
let
Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
СписокПолей = {"Поле 2", "Поле 3"},
УдалениеТекста = Table.TransformColumns(
Источник,
List.Transform(
СписокПолей,
each {_, (t) => Text.Remove(
t,{
"А".."я",
"A".."z",
"(",
")",
"ё"
})
}
)
)
in
УдалениеТекста
Результат:
После того, как я заменяю #(lf) на "; " - я получаю "; ; "
let
fx = (t)=> Text.Combine( Splitter.SplitTextByRepeatedLengths(10)(Text.Select(t,{"0".."9","."})),"; "),
Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
Out = Table.TransformColumns(Source,{{"Поле 2", fx, type text}, {"Поле 3", fx, type text}})
in
Out
Данный подход будет работать только в том случае если даты будут прописываться в 10тизначном формате. Если будет что-то типа 1.1.2020, то не прокатит