
Formuła ogólna
=TRIM(LEFT(SUBSTITUTE(MID(txt,FIND("@",txt),LEN(txt))," ",REPT(" ",100)),100))
Podsumowanie
Aby wyodrębnić słowa zaczynające się od określonego znaku, możesz użyć formuły opartej na sześciu funkcjach: TRIM, LEFT, SUBSTITUTE, MID, LEN i REPT. Takie podejście jest przydatne, jeśli chcesz wyodrębnić takie rzeczy, jak nazwa użytkownika Twittera z komórki zawierającej inny tekst.
W przedstawionym przykładzie formuła w C5 to:
=TRIM(LEFT(SUBSTITUTE(MID(B5,FIND("@",B5),LEN(B5))," ",REPT(" ",100)),100))
Wyjaśnienie
Zaczynając od wewnątrz, funkcja MID służy do wyodrębnienia całego tekstu po „@”:
MID(B5,FIND("@",B5),LEN(B5))
Funkcja ZNAJDŹ zapewnia punkt początkowy, a aby wyodrębnić całkowitą liczbę znaków, po prostu używamy LEN na oryginalnym tekście. Jest to trochę niechlujne, ale pozwala uniknąć obliczania dokładnej liczby znaków do wyodrębnienia. MID nie dba o to, czy ta liczba jest większa niż pozostałe znaki, po prostu wyodrębnia cały tekst następujący po znaku „@”.
Następnie „zalewamy” pozostały tekst spacjami, zastępując dowolną pojedynczą spację 100 spacjami, używając kombinacji SUBSTITUTE i REPT:
SUBSTITUTE("@word and remaining text"," ",REPT(" ",100))
Wydaje się to szalone, ale logika staje się jasna poniżej.
Następnie, aby wyodrębnić tylko żądane słowo (np. @Word), używamy LEWEGO do wyodrębnienia pierwszych 100 znaków od lewej. W ten sposób otrzymujemy „@ słowo” oraz wiele dodatkowych spacji. Aby zwizualizować, poniższe łączniki reprezentują spacje:
@słowo---------------------
Teraz musimy tylko usunąć wszystkie dodatkowe spacje. W tym celu używamy funkcji TRIM.
Uwaga: 100 to najdłuższe słowo, które spodziewasz się znaleźć, a które zaczyna się od znaku specjalnego. Zwiększ lub zmniejsz w zależności od potrzeb.
Masz lepszy sposób, aby to zrobić? Daj mi znać w komentarzach pod spodem!