Формула Excel: Извлечь слово, содержащее определенный текст -

Содержание

Общая формула

=TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),MAX(1,FIND("@",SUBSTITUTE(A1," ",REPT(" ",99)))-50),99))

Резюме

Чтобы извлечь слово, содержащее определенный текст, вы можете использовать формулу, основанную на нескольких функциях, в том числе ОБРЕЗАТЬ, ВЛЕВО, ПОДСТАВИТЬ, СРЕДНЕЕ, МАКСИМАЛЬНОЕ и ПОВТОР. Вы можете использовать эту формулу для извлечения таких вещей, как адреса электронной почты или другие подстроки с уникальным идентификатором.

В показанном примере формула C5 имеет следующий вид:

=TRIM(MID(SUBSTITUTE(B5," ",REPT(" ",99)),MAX(1,FIND("@",SUBSTITUTE(B5," ",REPT(" ",99)))-50),99))

Объяснение

Суть: эта формула «заполняет» пространство между словами в текстовой строке большим количеством пробелов, находит и извлекает интересующую подстроку и использует функцию TRIM для очистки беспорядка.

Исходный текст в B5 заполняется пробелами изнутри с помощью SUBSTITUTE:

SUBSTITUTE(B5," ",REPT(" ",99))

Это заменяет каждый отдельный пробел на 99 пробелов.

Примечание: 99 - это произвольное число, которое представляет самое длинное слово, которое вам нужно извлечь.

Затем функция НАЙТИ находит конкретный символ (в данном случае «@») внутри залитого текста:

FIND("@",SUBSTITUTE(B5," ",REPT(" ",99)))-50

НАЙТИ возвращает позицию символа «@» в этом тексте, из которой вычитается 50. Вычитание 50 эффективно "возвращает" позицию в какое-то место в середине пробелов, предшествующих интересующей подстроке. В показанном примере рассчитанная позиция - 366.

Функция MAX используется для решения проблемы, когда подстрока появляется первой в тексте. В этом случае позиция будет отрицательной, и MAX используется для сброса на 1.

При установленном начальном позиционировании MID используется для извлечения 99 символов текста, начиная с 366, из текста в B5, снова заполненного пробелом:

MID(SUBSTITUTE(B5," ",REPT(" ",99)),366,99)

Это извлекает интересующую подстроку с большим количеством пробелов до и после.

Наконец, функция TRIM используется для обрезки начального и конечного пробелов и возвращает подстроку, содержащую специальный символ.

Интересные статьи...