Страницы: 1
RSS
Из столбца в столбец скопировать слова соответствующие шаблону
 
Добрый день!
Возможно, для знающих простая задача. Есть столбец с данными (текст+числа) в некоторых строках столбца встречаются нужные слова.
Как вытащить эти нужные слова в отдельный столбик.
Шаблон для вытаскивания *.ru               (любое слово ограниченное с лева пробелом и заканчивающиеся на .ru)
Слово может быть в любом месте.

Благодарен за подсказку.  
 
=СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(ЛЕВБ(A2;ПОИСК(".";A2)+2);" ";ПОВТОР(" ";99));99))
Алексей М.
 
А ведь работает!!!!!
Спасибо добрый человек.
Куда нести благодарность?
 
Цитата
Nikolaevich написал:
любое слово ограниченное с лева пробелом и заканчивающиеся на .ru
В строках 3:9 слева пробела нет )
 
UDF
Код
Function Domen(cell$)
 With CreateObject("VBScript.RegExp")
     .Global = True
     .IgnoreCase = True
     .Pattern = "[a-z]+.ru"
     Domen = .Execute(cell)(0)
 End With
End Function
 
Тоже работает!!!
Спасибо за два пути решения одной проблемы.

Второй вариант даже выбирает из диапазона [a-z], в выборке как раз нужна латиница в названии.
Только при большом количестве строк второй вариант начинает заметно тормозить.
На 100 000 строк разница по времени с первым раз в 30 и при каждой дополнительной фильтрации/сортировки пресчёт идёт за ново.
Изменено: Nikolaevich - 22.06.2017 10:08:25
 
Цитата
Nikolaevich написал:
Второй вариант даже выбирает из диапазона [a-z], в выборке как раз нужна латиница в названии.
Первый вариант - формула, на буквы не обращает внимание. Использован другой метод выделения нужной подстроки.
Цитата
Nikolaevich написал:
второй вариант начинает заметно тормозить.
вы имеете ввиду вариант с UDF?
Алексей М.
 
По первому варианту, Латиницу от кирилицы отбираю через сортировку A->Я, сверху в столбце сотбирается кирилица.

UDF отбирает сразу, но на больших столбцах (100 0000 ) быстрее работает первый вариант,  даже с учетом последующей сортировки через A->Я, примерно раз в 30 быстрее.
 
Цитата
Nikolaevich написал:
По первому варианту, Латиницу от кирилицы отбираю через сортировку A->Я
Для формулы сортировка не нужна. Можно не сортировать.
Алексей М.
 
вариант функции в столбце D
Код
 Function vvv$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "\w+\.ru"
    vvv = .Execute(t)(0)
 End With
End Function
Изменено: sv2013 - 22.06.2017 16:14:25
 
Цитата
АlехМ написал:
Для формулы сортировка не нужна. Можно не сортировать.
Я сортирую уже после формулы. Чтобы отобрать латиницу от кирилицы.

Цитата
sv2013 написал:
вариант функции в столбце D
Функция тоже хорошо работает, но при большом количестве строк (100 000 строк) раз в 30 медленнее чем формула. И когда вносишь правку опять начинает пересчет.
Страницы: 1
Наверх