Здравствуйте! Никак не соображу без допстолбцов - подскажите, плз. Есть сборные названия товаров которые объединяют несколько частей (все в одной ячейке). 1)В начале обязательно все буквы заглавные - непосредственно название. 2)Первая часть может включать 1-2 цифры, пробелы между словами, некоторые знаки, (например # ^ - . ' ). Но цифры и знаки могут быть только в начале или в середине, но не в конце названия. 3)Далее идет всякий описательный хлам - количество в упаковке, артикул и т.д. , здесь тоже могут быть заглавные буквы, но не более 3 подряд. Задача: выделить непосредственно первую часть. Образец в файле.
Здравствуйте! Никак не соображу без допстолбцов - подскажите, плз. Есть сборные названия товаров которые объединяют несколько частей (все в одной ячейке). 1)В начале обязательно все буквы заглавные - непосредственно название. 2)Первая часть может включать 1-2 цифры, пробелы между словами, некоторые знаки, (например # ^ - . ' ). Но цифры и знаки могут быть только в начале или в середине, но не в конце названия. 3)Далее идет всякий описательный хлам - количество в упаковке, артикул и т.д. , здесь тоже могут быть заглавные буквы, но не более 3 подряд. Задача: выделить непосредственно первую часть. Образец в файле.pabchek
В принципе, если основное название отделяется от "всякого хлама" ограниченным списком символов (например, могут быть еще только цифры, но не всякие спецсимволы или символы других алфавитов), то их можно добавить в формулу - и все будет работать. Если же нет, то надо крутить формулу дальше...
Пока придумал как отбросить строчные буквы (формула массивная, вводится через Ctrl+Shift+Enter):
В принципе, если основное название отделяется от "всякого хлама" ограниченным списком символов (например, могут быть еще только цифры, но не всякие спецсимволы или символы других алфавитов), то их можно добавить в формулу - и все будет работать. Если же нет, то надо крутить формулу дальше...Samaretz
Function GetPart$(str$) With CreateObject("vbscript.regexp") .Pattern = "([^A-Za-zА-ЯЁё ]*[A-ZА-ЯЁ ]*)": GetPart = IIf(.test(str), Trim(.Execute(str)(0)), "") End With End Function
[/vba]
[vba]
Код
Function GetPart$(str$) With CreateObject("vbscript.regexp") .Pattern = "([^A-Za-zА-ЯЁё ]*[A-ZА-ЯЁ ]*)": GetPart = IIf(.test(str), Trim(.Execute(str)(0)), "") End With End Function
KSV, krosav4ig, все отлично работает. Спасибо большое! Samaretz, тоже спасибо за уделенное время, однако это не то, что нужно (хотя и работает как заявлено Вами)
KSV, krosav4ig, все отлично работает. Спасибо большое! Samaretz, тоже спасибо за уделенное время, однако это не то, что нужно (хотя и работает как заявлено Вами) pabchek
"Учиться, учиться и еще раз учиться!" WM: R399923528092