![](https://cdn.wiki-base.com/6446679/excel_formula_extract_word_that_begins_with_specific_character__2.png.webp)
Обща формула
=TRIM(LEFT(SUBSTITUTE(MID(txt,FIND("@",txt),LEN(txt))," ",REPT(" ",100)),100))
Обобщение
За да извлечете думи, които започват с определен символ, можете да използвате формула, базирана на шест функции: TRIM, LEFT, SUBSTITUTE, MID, LEN и REPT. Този подход е полезен, ако трябва да извлечете неща като потребителско име на Twitter от клетка, която съдържа друг текст.
В показания пример формулата в C5 е:
=TRIM(LEFT(SUBSTITUTE(MID(B5,FIND("@",B5),LEN(B5))," ",REPT(" ",100)),100))
Обяснение
Започвайки отвътре навън, функцията MID се използва за извличане на целия текст след "@":
MID(B5,FIND("@",B5),LEN(B5))
Функцията FIND осигурява начална точка и за извличане на общия брой символи просто използваме LEN върху оригиналния текст. Това е малко небрежно, но избягва да се изчислява точния брой символи за извличане. MID не се интересува дали този номер е по-голям от останалите знаци, той просто извлича целия текст след "@".
След това „заливаме“ останалия текст с интервали, като заменяме всяко отделно пространство със 100 интервали, използвайки комбинация от ЗАМЕНИТЕЛ и РЕПТИРАНЕ:
SUBSTITUTE("@word and remaining text"," ",REPT(" ",100))
Това изглежда налудничаво, но логиката става ясна по-долу.
След това, за да извлечем само думата, която искаме (т.е. @word), използваме НАЛЯВО, за да извлечем първите 100 знака отляво. Това ни дава "@word", плюс много допълнителни интервали. За да визуализирате, тиретата по-долу представляват интервали:
@word ---------------------
Сега просто трябва да премахнем всички излишни интервали. За това използваме функцията TRIM.
Забележка: 100 представлява най-дългата дума, която очаквате да намерите, която започва със специалния знак. Увеличете или намалете според вашите нужди.
Имате по-добър начин да направите това? Кажете ми в коментарите по-долу!