Формула Excel: извлечение слова, начинающегося с определенного символа -

Содержание

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

=TRIM(LEFT(SUBSTITUTE(MID(txt,FIND("@",txt),LEN(txt))," ",REPT(" ",100)),100))

Резюме

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

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

=TRIM(LEFT(SUBSTITUTE(MID(B5,FIND("@",B5),LEN(B5))," ",REPT(" ",100)),100))

Объяснение

Начиная с изнанки, функция MID используется для извлечения всего текста после "@":

MID(B5,FIND("@",B5),LEN(B5))

Функция НАЙТИ обеспечивает отправную точку, и для извлечения общего количества символов мы просто используем LEN в исходном тексте. Это немного небрежно, но позволяет избежать вычисления точного количества символов для извлечения. MID не заботится о том, превышает ли это число оставшиеся символы, он просто извлекает весь текст, следующий за «@».

Затем мы «заливаем» оставшийся текст пробелами, заменяя любой пробел на 100 пробелов, используя комбинацию SUBSTITUTE и REPT:

SUBSTITUTE("@word and remaining text"," ",REPT(" ",100))

Это кажется безумным, но логика станет понятной ниже.

Затем, чтобы извлечь только нужное нам слово (например, @word), мы используем LEFT для извлечения первых 100 символов слева. Это дает нам "@word" плюс много дополнительных пробелов. Для визуализации дефисы ниже представляют собой пробелы:

@слово---------------------

Теперь нам просто нужно удалить все лишние пробелы. Для этого мы используем функцию TRIM.

Примечание. 100 представляет собой самое длинное слово, которое вы ожидаете найти, которое начинается со специального символа. Увеличивайте или уменьшайте в соответствии с вашими потребностями.

Есть способ сделать это лучше? Позвольте мне знать в комментариях ниже!

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