Страницы: 1
RSS
Разделить строку по строчным и прописным
 
Коллеги, добрый день! возможно ли внутри текстовой строки найти первый переход с прописной на строчную букву?\
Намекните, пожалуйста
Например
АЗБУКА ЗДОРОВЬЯ батончик мюсли Абрикос 30г Tecmar

мне в дальнейшем нужно разделить строку по столбцам на АЗБУКА ЗДОРОВЬЯ
и  батончик мюсли Абрикос 30г Tecmar
как определить эту границу?
 
Цитата
найти первый переход с прописной на строчную букву
А прописные всегда в начале предложения?
 
UDF
Код
Function извлечь_$(t$)
    With CreateObject("VBScript.RegExp")
        .Pattern = "[А-ЯЁ\s]+"
        извлечь_ = Trim(.Execute(t)(0))
    End With
End Function
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
Kuzmich написал: А прописные всегда в начале предложения?
ага. всегда

Коллеги, а без макросов никак? у меня с ними дружбы нет
 
Коллеги, а без макросов никак? у меня с ними дружбы нет
 
Привет. Формула массива:
=ЛЕВСИМВ(A1;ПОИСКПОЗ(1=2;СОВПАД(ПСТР(A1;СТРОКА(A$1:ИНДЕКС(A$1:A$1000;ДЛСТР(A1)));1);ПСТР(ПРОПИСН(A1);СТРОКА(A$1:ИНДЕКС(A$1:A$1000;ДЛСТР(A1)));1));0)-2)
Обычная формула
=ПСТР(A1;ДЛСТР(B1)+2;99)
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
для первой части чуть покороче массивная
Код
=ЛЕВСИМВ(A1;МИН(ЕСЛИОШИБКА(НАЙТИ(" "&СИМВОЛ(СТРОКА($224:$255));A1);"Ё")))
Лень двигатель прогресса, доказано!!!
 
Сергей, Не корректно, опора идет только на кириллицу.
АЗБУКА ЗДОРОВЬЯ tacmar батончик мюсли Абрикос 30г Tecmar - даст АЗБУКА ЗДОРОВЬЯ tacmar

Максим В.,
в индексе столбец указать не хуже сделать, а короче будет
=LEFT(A1;MATCH(1=2;EXACT(MID(A1;ROW(A$1:INDEX(A:A;LEN(A1)));1);MID(UPPER(A1);ROW(A$1:INDEX(A:A;LEN(A1)));1));)-2)
Изменено: БМВ - 26.07.2019 10:30:35
По вопросам из тем форума, личку не читаю.
 
БМВ, а тяжелее формула не станет?
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В.,  не станет,  нет перебора или поиска, есть четкое указание на конкретную ячейку.
По вопросам из тем форума, личку не читаю.
 
Буду знать. Спасибо.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Цитата
нужно разделить строку по столбцам
Если предложение в ячейке А1, то запускаете макрос и он делит в В1 и С1
Код
Sub ПрописныеСтрочные()
Dim mo As Object
 With CreateObject("VBScript.RegExp")
   .Global = True
   .MultiLine = True
   .Pattern = "^[А-ЯЁ ]+"
     If .test(Cells(1, 1)) Then
       Set mo = .Execute(Cells(1, 1))
       Cells(1, 2) = mo(0)
       Cells(1, 3) = Mid(Cells(1, 1), mo(0).Length + 1)
    End If
 End With
End Sub
 
ManagerKrr,Опять же, примерного списка нету. Может это получится применить.
Изменено: Xat - 26.07.2019 10:52:13
 
Спасибо всем огромное. Ход мысли ясен. Вечером проверю. Нижайший поклон
Страницы: 1
Наверх