
Formuła ogólna
=TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),MAX(1,FIND("@",SUBSTITUTE(A1," ",REPT(" ",99)))-50),99))
Podsumowanie
Aby wyodrębnić słowo zawierające określony tekst, możesz użyć formuły opartej na kilku funkcjach, takich jak TRIM, LEFT, SUBSTITUTE, MID, MAX i REPT. Możesz użyć tej formuły, aby wyodrębnić takie rzeczy, jak adresy e-mail lub inne podciągi z unikalnym identyfikatorem.
W przedstawionym przykładzie formuła w C5 to:
=TRIM(MID(SUBSTITUTE(B5," ",REPT(" ",99)),MAX(1,FIND("@",SUBSTITUTE(B5," ",REPT(" ",99)))-50),99))
Wyjaśnienie
Istota: ta formuła „zalewa” przestrzeń między słowami w ciągu tekstowym dużą liczbą spacji, wyszukuje i wyodrębnia interesujący nas podciąg i używa funkcji TRIM, aby posprzątać bałagan.
Pracując od wewnątrz, oryginalny tekst w B5 jest zalewany spacjami za pomocą polecenia PODSTAW:
SUBSTITUTE(B5," ",REPT(" ",99))
Zastępuje to każdą pojedynczą przestrzeń 99 spacjami.
Uwaga: 99 to po prostu dowolna liczba reprezentująca najdłuższe słowo, które musisz wyodrębnić.
Następnie funkcja ZNAJDŹ lokalizuje określony znak (w tym przypadku „@”) wewnątrz zalanego tekstu:
FIND("@",SUBSTITUTE(B5," ",REPT(" ",99)))-50
ZNAJDŹ zwraca pozycję znaku „@” w tym tekście, od której odejmuje się 50. Odejmowanie 50 skutecznie „cofa” pozycję do miejsca pośrodku przestrzeni poprzedzających podciąg będący przedmiotem zainteresowania. W pokazanym przykładzie obliczona pozycja to 366.
Funkcja MAX służy do rozwiązywania problemu z podciągiem pojawiającym się jako pierwszy w tekście. W takim przypadku pozycja będzie ujemna, a wartość MAX jest używana do resetowania do 1.
Po ustaleniu pozycji początkowej, MID jest używany do wyodrębnienia 99 znaków tekstu, zaczynając od 366 z tekstu w B5, ponownie zalanych spacją:
MID(SUBSTITUTE(B5," ",REPT(" ",99)),366,99)
Wyodrębnia to podciąg, który nas interesuje, zawierający wiele znaków spacji przed i po.
Na koniec funkcja TRIM służy do przycinania spacji wiodącej i końcowej oraz zwraca podciąg zawierający znak specjalny.