Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2009, 01:50   #1
Aleox
 
Регистрация: 27.11.2009
Сообщений: 3
По умолчанию Как извлечь слово из текстовой ячейки по заданному шаблону и поместить в соседнюю ячейку?

Здравствуйте!

Помогите пожалуйста решить такую задачу:
Есть текстовая ячейка с текстом вида "некий текст АА-XXXX некий текст"
Длина текста нефиксирована, извлечь из него надо то самое слово "АА-ХХХХ", где постоянны только символы "АА-" а вот ХХХХ переменны, как по количеству так и по значению (т.е. после АА- символы могут быть разные), соответственно концом слова видимо надо считать пробел после последнего символа, хотя располагаться AA-XXXX может в любом месте текста, в т.ч. самом начале или самом конце. Это слово после извлечения надо поместить в соседнюю ячейку этой же строки
Добавлю еще, что АА- в ячейке встречается только один раз, т.е. для этой ячейки шаблон АА- является уникальным.
Aleox вне форума Ответить с цитированием
Старый 27.11.2009, 01:59   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

если слово в ячейке A1, в B1 пишете:
=ПСТР(A1;ПОИСК("AA-";A1;1);ПОИСК(" ";A1;ПОИСК("AA-";A1;1))-ПОИСК("AA-";A1;1))
motorway вне форума Ответить с цитированием
Старый 27.11.2009, 13:39   #3
Aleox
 
Регистрация: 27.11.2009
Сообщений: 3
По умолчанию

Спасибо большое! Все работает.

А можно еще вопрос? Теперь нужен следующий шаг. Извлеченное слово нужно слегка модифицировать. Итак формат слова сейчас такой "АА-ХХ12745YY" - т.е. после дефиса мы имеем некоторое количество букв, потом идут цифры (разные, и количество их разное) и в конце опять буквы. Вот эти буквы в конце надо из слова удалить. Этих конечных букв может быть от 0 до 4, причем в них может встречаться символ "-". В общем надо удалить все символы с конца слова до цифр, т.е. слово должно принять вид "АА-ХХ12745". И нужно поместить это слово в следующюю ячейку строки (C1). Возможно такое?
Aleox вне форума Ответить с цитированием
Старый 27.11.2009, 17:11   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Да, возможно. В ячейке C1 напишите, правда, несколько громоздко выглядит:

Код:
=ЛЕВСИМВ(B1;ДЛСТР(B1)-4)&ЕСЛИ(И(КОДСИМВ(ПСТР(B1;ДЛСТР(B1)-3;1))>47; КОДСИМВ(ПСТР(B1;ДЛСТР(B1)-3;1))<58); ПСТР(B1;ДЛСТР(B1)-3;1); "")&ЕСЛИ(И(КОДСИМВ(ПСТР(B1;ДЛСТР(B1)-2;1))>47; КОДСИМВ(ПСТР(B1;ДЛСТР(B1)-2;1))<58); ПСТР(B1;ДЛСТР(B1)-2;1); "")&ЕСЛИ(И(КОДСИМВ(ПСТР(B1;ДЛСТР(B1)-1;1))>47; КОДСИМВ(ПСТР(B1;ДЛСТР(B1)-1;1))<58); ПСТР(B1;ДЛСТР(B1)-1;1); "")&ЕСЛИ(И(КОДСИМВ(ПСТР(B1;ДЛСТР(B1);1))>47; КОДСИМВ(ПСТР(B1;ДЛСТР(B1);1))<58); ПСТР(B1;ДЛСТР(B1);1); "")
Но другие варианты тоже могут быть.
motorway вне форума Ответить с цитированием
Старый 27.11.2009, 19:58   #5
Aleox
 
Регистрация: 27.11.2009
Сообщений: 3
По умолчанию

Еще раз Вам спасибо! Все прекрасно работает. Сам бы я такое "ни в жисть" не соорудил бы
Aleox вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler TASM/ Разработать прогу:разбивающую каждое слово текстовой строки на две части levis07 Фриланс 5 20.11.2009 10:34
Как обозначить ячейку на одну правее от активной ячейки? ru3000 Microsoft Office Excel 4 28.07.2009 08:03
Как копировать URL адрес из ячейки в другую ячейку (макросом). AlexDoom Помощь студентам 1 09.03.2009 10:59
Извлечь в одну ячейку несколько значений из строки которые удовлетворяют заданному условию. Dorvir Microsoft Office Excel 5 08.04.2008 16:12
как разбить текстовую ячейку на отдельные ячейки? zetrix Microsoft Office Excel 0 31.10.2006 07:46