Страницы: 1
RSS
Поиск в тексте хХ (рядом строчная и заглавная) и вставка между ними символа
 
Есть текст в таком виде qualityMaterial
между yM нужно поставить поставить свой символ как это сделать.
текст указан для примера, будут попадаться и другие словосочетания. единственное что их обедняет сначала идет маленькая буква потом большая и нет наличия пробела между ними.
 
Цитата
lifesss написал: поиск нужной отметки в текстке
Отметку Вы НЕ ищите, а Вам надо поставить. Название темы модераторы забракуют, ИМХО.
Читаем правила. Согласно им прикладываем файл-пример.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
lifesss написал:
сначала идет маленькая буква потом большая
Подготовьте себе словарь, содержащий слова с маленькими буквами или эти начинающиеся с прописных букв.
Потом просто, только поиск и замена ... или остается vba ... но без примера, неизвестно, что делать.
 
может вот это поможет? поиск заглавной буквы
коды заглавных букв в латинице от 65 до 90.
Изменено: kalmar - 29.11.2018 12:59:00
 
Недавно такая тема обсуждалась.
Владимир
 
Цитата
сначала идет маленькая буква потом большая и нет наличия пробела между ними.
UDF
Код
Function BukvaProbel(cell$)
 With CreateObject("VBScript.RegExp")
   .Global = True
   .Pattern = "[a-z][A-Z]"
   BukvaProbel = Left(cell, .Execute(cell)(0).FirstIndex + 1) & " " & Mid(cell, .Execute(cell)(0).FirstIndex + 2)
 End With
End Function
 
фм. символ -
=ЕСЛИ(И(КОДСИМВ(ПСТР(A1;МИН(ЕСЛИОШИБКА(НАЙТИ({"A":"B":"C":"D":"E":"F":"G":"H":"I":"J":"K":"L":"M":"N":"O":"P":"Q":"R":"S":"T":"U":"V":"W":"X":"Y":"Z"};A1);""))-1;1))>96;КОДСИМВ(ПСТР(A1;МИН(ЕСЛИОШИБКА(НАЙТИ({"A":"B":"C":"D":"E":"F":"G":"H":"I":"J":"K":"L":"M":"N":"O":"P":"Q":"R":"S":"T":"U":"V":"W":"X":"Y":"Z"};A1);""))-1;1))<122);ПСТР(A1;1;МИН(ЕСЛИОШИБКА(НАЙТИ({"A":"B":"C":"D":"E":"F":"G":"H":"I":"J":"K":"L":"M":"N":"O":"P":"Q":"R":"S":"T":"U":"V":"W":"X":"Y":"Z"};A1);""))-1)&"-"&ПСТР(A1;МИН(ЕСЛИОШИБКА(НАЙТИ({"A":"B":"C":"D":"E":"F":"G":"H":"I":"J":"K":"L":"M":"N":"O":"P":"Q":"R":"S":"T":"U":"V":"W":"X":"Y":"Z"};A1);""));999);"")
 
массивная
Код
=ЗАМЕНИТЬ(A1;ПОИСКПОЗ(1;1/((КОДСИМВ(ЛЕВБ(ПРАВБ(A1;СТРОКА($2:$99))))>97)*(КОДСИМВ(ЛЕВБ(ПРАВБ(A1;СТРОКА($1:$98))))<91)););;" ")
обычная
Код
=ЗАМЕНИТЬ(A1;ПРОСМОТР(2;1/((КОДСИМВ(ЛЕВБ(ПРАВБ(A1;СТРОКА($2:$99))))>97)*(КОДСИМВ(ЛЕВБ(ПРАВБ(A1;СТРОКА($1:$98))))<91));СТРОКА($1:$98));;" ")
Алексей М.
 
ещё вариант UDF в C1
 
Код
Function bbb$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "([a-z])([A-Z])"
   bbb = .Replace(t, "$1 $2")
 End With
End Function
Изменено: кузя1972 - 29.11.2018 20:20:09
 
Если сперва всегда маленькие, то можно так, массивно
=REPLACE(A1;MATCH(1=1;SUBSTITUTE(MID(A1;ROW($1:$99);2);MID(LOWER(A1);ROW($1:$99);2);"")<>"";)+1;;" ")
{=ЗАМЕНИТЬ(A1;ПОИСКПОЗ(1=1;ПОДСТАВИТЬ(ПСТР(A1;СТРОКА($1:$99);2);ПСТР(СТРОЧН(A1);СТРОКА($1:$99);2);"")<>"";)+1;;" ")}
По вопросам из тем форума, личку не читаю.
 
Ну и мой вариант до кучи:
=ЗАМЕНИТЬ(A1;ПОИСКПОЗ(1=1;СОВПАД(ПСТР(A1;СТРОКА($1:$99);1);ПРОПИСН(ПСТР(A1;СТРОКА($1:$99);1)));0);;"-")
Изменено: Bema - 30.11.2018 09:14:18
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
Страницы: 1
Наверх