Это на каком языке? Андрей, а если несколько емель в клетке? Точки в префиксе, пара точек в суффиксе. Мне кажется в любом случае надежней будет на регекспе сделать. И вообще, куда вы спешите? Оно надо? Пущай Лександра подсуетится да выложит пример со всеми возможными. Тогда и судить можно будет.
Это на каком языке? Андрей, а если несколько емель в клетке? Точки в префиксе, пара точек в суффиксе. Мне кажется в любом случае надежней будет на регекспе сделать. И вообще, куда вы спешите? Оно надо? Пущай Лександра подсуетится да выложит пример со всеми возможными. Тогда и судить можно будет.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Сообщение отредактировал KuklP - Четверг, 26.12.2013, 20:32
О чём ты говорил? ТС образца своих данных не представила... А при "море вариантов" я тоже всегда пользуюсь VBA, а не формулами. А то ведь можно додуматься до того, что и "fuЁКЛМН*vasya.pupkin@mail.gotoИПРСТs" есть представление e-mail...
О чём ты говорил? ТС образца своих данных не представила... А при "море вариантов" я тоже всегда пользуюсь VBA, а не формулами. А то ведь можно додуматься до того, что и "fuЁКЛМН*vasya.pupkin@mail.gotoИПРСТs" есть представление e-mail...AndreTM
Вот приложила первые 35 емейлов. Отвечая на ваши вопросы: емейлы могут идти подряд, несколько. Вариантом масса. Общая таблица 4.500 таких ячеек.
И если не сложно могли бы немного пояснять формулу, я конечно могу тупо подставить ее... но все таки хотелось бы понять что бы потом делать самой. Спасибо.
Вот приложила первые 35 емейлов. Отвечая на ваши вопросы: емейлы могут идти подряд, несколько. Вариантом масса. Общая таблица 4.500 таких ячеек.
И если не сложно могли бы немного пояснять формулу, я конечно могу тупо подставить ее... но все таки хотелось бы понять что бы потом делать самой. Спасибо. Lexandra
проблему решила сначала почистив автозаменой все лишние буквы, типа "р.т." "д.т." и заменив их на пробелы. А потом прошла формулой которую предложил _Boroda_, скопировала значения в текст, удалила лишние "!знач" и потом удалила последние пустые ячейки оставив только е-mail
Наверное есть способы и получше. Но я в любом случае с вашей помощью задачу сделала. Спасибо за помощь, но не отказалась бы в разьяснении формулы..все таки
проблему решила сначала почистив автозаменой все лишние буквы, типа "р.т." "д.т." и заменив их на пробелы. А потом прошла формулой которую предложил _Boroda_, скопировала значения в текст, удалила лишние "!знач" и потом удалила последние пустые ячейки оставив только е-mail
Наверное есть способы и получше. Но я в любом случае с вашей помощью задачу сделала. Спасибо за помощь, но не отказалась бы в разьяснении формулы..все такиLexandra
Пусть в А1 находится текст "яч см@ит ьб". =СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(" "&A1;" ";ПОВТОР(" ";ДЛСТР(A1)));ПОИСК(" "&ПОВТОР("?";ДЛСТР(A1))&"@";ПОДСТАВИТЬ(" "&A1;" ";ПОВТОР(" ";ДЛСТР(A1))));ДЛСТР(A1)*2)) 1. кусок ПОДСТАВИТЬ(" "&A1;" ";ПОВТОР(" ";ДЛСТР(A1))) подставляет в текст Пробел_ТекстИзА1 вместо каждого пробела столько пробелов, сколько символов в ячейке А1. Для краткости обзовем всю эту байду ТТТ. 2. кусок " "&ПОВТОР("?";ДЛСТР(A1))&"@" дает нам такую конструкцию: Пробел_КучаЗнаковВопроса_Собака, где КучаЗнаковВопроса - это столько знаков вопроса, сколько символов в ячейке А1. Обзовем ЗЗЗ 3. кусок ПОИСК(" "&ПОВТОР("?";ДЛСТР(A1))&"@";ПОДСТАВИТЬ(" "&A1;" ";ПОВТОР(" ";ДЛСТР(A1)))) можно переписать как ПОИСК(ЗЗЗ;ТТТ). Сразу же вспоминаем, что функция ПОИСК поддерживает подстановочные знаки, а "?" - это знак любого символа. Следовательно, ПОИСК(ЗЗЗ;ТТТ) даст нам позицию какого-то пробела из текста в п.1, который находится после буквы "ч" и до буквы "с" и расстояние от этого пробела до символа @ будет равняться количеству символов в А1+1. Обзываем ППП 4. ПСТР(ПОДСТАВИТЬ(" "&A1;" ";ПОВТОР(" ";ДЛСТР(A1)));ПОИСК(" "&ПОВТОР("?";ДЛСТР(A1))&"@";ПОДСТАВИТЬ(" "&A1;" ";ПОВТОР(" ";ДЛСТР(A1))));ДЛСТР(A1)*2) переписываем как ПСТР(ТТТ;ППП;ДЛСТР(A1)*2). Словами - если в нашем здоровучем тексте ТТТ начиная от позиции ППП отсчитать 2 раза по столько символов, сколько знаков в А1, то мы получим такой текст: ОднаКучкаПробелов_ТекстСодержащийЗнак@_ДругаяКучкаПробелов 5. функцией СЖПРОБЕЛЫ убираем наши кучки и получаем искомый адрес а) вместо А1 в некоторых местах написано " "&A1 для случая, когда адрес почты в А1 стоит самым первым словом и чтобы тогда конструкция ПОИСК(" ";ЗЗЗ) не давала ошибку из-зи отсутствия пробела в тексте для поиска.
Пусть в А1 находится текст "яч см@ит ьб". =СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(" "&A1;" ";ПОВТОР(" ";ДЛСТР(A1)));ПОИСК(" "&ПОВТОР("?";ДЛСТР(A1))&"@";ПОДСТАВИТЬ(" "&A1;" ";ПОВТОР(" ";ДЛСТР(A1))));ДЛСТР(A1)*2)) 1. кусок ПОДСТАВИТЬ(" "&A1;" ";ПОВТОР(" ";ДЛСТР(A1))) подставляет в текст Пробел_ТекстИзА1 вместо каждого пробела столько пробелов, сколько символов в ячейке А1. Для краткости обзовем всю эту байду ТТТ. 2. кусок " "&ПОВТОР("?";ДЛСТР(A1))&"@" дает нам такую конструкцию: Пробел_КучаЗнаковВопроса_Собака, где КучаЗнаковВопроса - это столько знаков вопроса, сколько символов в ячейке А1. Обзовем ЗЗЗ 3. кусок ПОИСК(" "&ПОВТОР("?";ДЛСТР(A1))&"@";ПОДСТАВИТЬ(" "&A1;" ";ПОВТОР(" ";ДЛСТР(A1)))) можно переписать как ПОИСК(ЗЗЗ;ТТТ). Сразу же вспоминаем, что функция ПОИСК поддерживает подстановочные знаки, а "?" - это знак любого символа. Следовательно, ПОИСК(ЗЗЗ;ТТТ) даст нам позицию какого-то пробела из текста в п.1, который находится после буквы "ч" и до буквы "с" и расстояние от этого пробела до символа @ будет равняться количеству символов в А1+1. Обзываем ППП 4. ПСТР(ПОДСТАВИТЬ(" "&A1;" ";ПОВТОР(" ";ДЛСТР(A1)));ПОИСК(" "&ПОВТОР("?";ДЛСТР(A1))&"@";ПОДСТАВИТЬ(" "&A1;" ";ПОВТОР(" ";ДЛСТР(A1))));ДЛСТР(A1)*2) переписываем как ПСТР(ТТТ;ППП;ДЛСТР(A1)*2). Словами - если в нашем здоровучем тексте ТТТ начиная от позиции ППП отсчитать 2 раза по столько символов, сколько знаков в А1, то мы получим такой текст: ОднаКучкаПробелов_ТекстСодержащийЗнак@_ДругаяКучкаПробелов 5. функцией СЖПРОБЕЛЫ убираем наши кучки и получаем искомый адрес а) вместо А1 в некоторых местах написано " "&A1 для случая, когда адрес почты в А1 стоит самым первым словом и чтобы тогда конструкция ПОИСК(" ";ЗЗЗ) не давала ошибку из-зи отсутствия пробела в тексте для поиска._Boroda_
Надеюсь тема еще актуальна. Такое дело: есть ячейка, в которой содержится информация в одну строку с перечислением кучи информации. Надо вытащить определенно количество знаков после определенного слова и знака (пример: "выдел:33" вытащить число 33). Причем это условие должно быть четким, без интерпретации типа "подвыдел:". Кроме того, в одной ячейке может содержаться несколько значений, но здесь, я думаю, можно поступить проще - в формуле указать, с какого места искать значение. Честно говоря с текстовыми формулами что-то я слабоват, поэтому и спрашиваю, не судите строго
PS. Пытался что-то сделать самостоятельно, но такая чушь получается. Функция текст по столбцам несколько неадекватно работает, разделяет слова и значения на разные длины, что потом невозможно работать одной формулой.
Пример прилагается.
Надеюсь тема еще актуальна. Такое дело: есть ячейка, в которой содержится информация в одну строку с перечислением кучи информации. Надо вытащить определенно количество знаков после определенного слова и знака (пример: "выдел:33" вытащить число 33). Причем это условие должно быть четким, без интерпретации типа "подвыдел:". Кроме того, в одной ячейке может содержаться несколько значений, но здесь, я думаю, можно поступить проще - в формуле указать, с какого места искать значение. Честно говоря с текстовыми формулами что-то я слабоват, поэтому и спрашиваю, не судите строго
PS. Пытался что-то сделать самостоятельно, но такая чушь получается. Функция текст по столбцам несколько неадекватно работает, разделяет слова и значения на разные длины, что потом невозможно работать одной формулой.