Formula Excel: Eliminați ultimul cuvânt -

Cuprins

Formula generică

=MID(A1,1,FIND("~",SUBSTITUTE(A1," ","~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)

rezumat

Pentru a elimina ultimul cuvânt dintr-un șir de text, puteți utiliza o formulă bazată pe funcția MID, cu ajutorul SUBSTITUTE, LEN și FIND. În exemplul prezentat, formula din celula B5 este:

=MID(B5,1,FIND("~",SUBSTITUTE(B5," ","~",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))))-1)

Explicaţie

Această formulă utilizează funcția MID pentru a elimina ultimul cuvânt dintr-un șir de text. Principala provocare este de a afla de unde începe ultimul cuvânt.

Formula este puțin complicată, dar pașii sunt simpli. Mai întâi numărăm câte spații există în text folosind LEN și SUBSTITUTE. Apoi, folosim argumentul „instanță” oarecum obscur în funcția SUBSTITUTE pentru a înlocui ultimul spațiu cu o tildă (~). În cele din urmă, folosim FIND pentru a afla unde este tilde și funcția MID pentru a arunca totul după tilde.

Lucrând din interior spre exterior, folosim funcțiile LEN și SUBSTITUTE pentru a număra câte spații apar în următoarea:

LEN(B5)-LEN(SUBSTITUTE(B5," ","")) // returns 6

Pentru textul din B5, acesta returnează 6. Această pagină explică această parte a formulei în detaliu. Acest lucru ne spune că vrem să tăiem textul la caracterul 6 spațiu.

Notă: dacă cuvintele sunt separate de mai multe spații, va trebui să normalizați mai întâi spațiile cu funcția TRIM.

Numărul 6 este apoi conectat la un alt SUBSTITUT ca „numărul instanței”:

SUBSTITUTE(B5," ","~",6) // insert tilde

Aici, înlocuim a 6-a instanță a unui spațiu ("") cu o tildă (~). După executarea SUBSTITUTE, returnează acest șir:

"It's been seven hours and fifteen~days"

Notă: folosim o tildă (~) numai pentru că este un caracter care apare rar. Puteți utiliza orice caracter doriți, atâta timp cât nu apare în textul sursă.

Apoi, folosim funcția FIND pentru a localiza tilde:

FIND("~","It's been seven hours and fifteen~days")-1

FIND returnează 34, deoarece tilde este cel de-al 34-lea personaj. Scădem 1 din acest număr, deoarece nu vrem să includem ultimul spațiu în rezultatul final. Acum putem simplifica formula pentru:

=MID(B5,1,33) // extract final text

Funcția MID returnează apoi caracterele 1-33:

"It's been seven hours and fifteen"

Cu un delimitator personalizat

Aceeași formulă poate fi utilizată cu un delimitator diferit. De exemplu, pentru a elimina tot textul după ultima bară „/”, puteți utiliza:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-1)

Eliminați ultimele n cuvinte

Puteți adapta formula pentru a elimina ultimele 2 cuvinte, ultimele 3 cuvinte etc. Forma generală este:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,d,"~",LEN(A1)-LEN(SUBSTITUTE(A1,d,""))-(n-1)))-1)

unde d este delimitatorul și n este numărul de cuvinte de eliminat.

Articole interesante...