
Formuła ogólna
=MID(A1,1,FIND("~",SUBSTITUTE(A1," ","~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)
Podsumowanie
Aby usunąć ostatnie słowo z ciągu tekstowego, możesz użyć formuły opartej na funkcji MID, z pomocą SUBSTITUTE, LEN i FIND. W przedstawionym przykładzie formuła w komórce B5 to:
=MID(B5,1,FIND("~",SUBSTITUTE(B5," ","~",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))))-1)
Wyjaśnienie
Ta formuła wykorzystuje funkcję MID w celu usunięcia ostatniego słowa z ciągu tekstowego. Głównym wyzwaniem jest ustalenie, gdzie zaczyna się ostatnie słowo.
Formuła jest nieco zawiła, ale kroki są proste. Najpierw liczymy, ile spacji istnieje w tekście, używając LEN i SUBSTITUTE. Następnie używamy nieco niejasnego argumentu „instancja” w funkcji SUBSTITUTE, aby zastąpić ostatnią spację tyldą (~). Na koniec używamy ZNAJDŹ, aby dowiedzieć się, gdzie jest tylda, i funkcji MID, aby odrzucić wszystko po tyldie.
Pracując od wewnątrz, używamy funkcji LEN i SUBSTITUTE, aby policzyć, ile spacji pojawi się w następnym:
LEN(B5)-LEN(SUBSTITUTE(B5," ","")) // returns 6
W przypadku tekstu w polu B5 zwraca to 6. Ta strona wyjaśnia bardziej szczegółowo tę część wzoru. To mówi nam, że chcemy wyciąć tekst na szóstym znaku spacji.
Uwaga: jeśli słowa są oddzielone więcej niż jedną spacją, najpierw należy znormalizować spacje za pomocą funkcji TRIM.
Numer 6 jest następnie podłączany do innego SUBSTITUTE jako „numer instancji”:
SUBSTITUTE(B5," ","~",6) // insert tilde
Tutaj zastępujemy szóste wystąpienie spacji („”) tyldą (~). Po uruchomieniu SUBSTITUTE zwraca następujący ciąg:
"It's been seven hours and fifteen~days"
Uwaga: używamy tyldy (~) tylko dlatego, że jest to rzadko występujący znak. Możesz użyć dowolnego znaku, o ile nie pojawia się on w tekście źródłowym.
Następnie używamy funkcji ZNAJDŹ, aby zlokalizować tyldę:
FIND("~","It's been seven hours and fifteen~days")-1
ZNAJDŹ zwraca 34, ponieważ tylda jest 34. znakiem. Odejmujemy 1 od tej liczby, ponieważ nie chcemy uwzględniać ostatniej spacji w wyniku końcowym. Możemy teraz uprościć formułę, aby:
=MID(B5,1,33) // extract final text
Funkcja MID zwraca następnie znaki 1-33:
"It's been seven hours and fifteen"
Z niestandardowym ogranicznikiem
Tej samej formuły można użyć z innym ogranicznikiem. Na przykład, aby usunąć cały tekst po ostatnim ukośniku „/”, możesz użyć:
=MID(A1,1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-1)
Usuń ostatnie n słów
Możesz dostosować formułę, aby usunąć ostatnie 2 słowa, ostatnie 3 słowa itp. Ogólna forma to:
=MID(A1,1,FIND("~",SUBSTITUTE(A1,d,"~",LEN(A1)-LEN(SUBSTITUTE(A1,d,""))-(n-1)))-1)
gdzie d jest ogranicznikiem, an jest liczbą słów do usunięcia.