Formuła Excel: Usuń ostatnie słowo -

Spisie treści

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.

Interesujące artykuły...