Excel formula: Uklonite zadnju riječ -

Sadržaj

Generička formula

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

Sažetak

Da biste uklonili posljednju riječ iz tekstualnog niza, možete upotrijebiti formulu koja se temelji na funkciji MID, uz pomoć SUBSTITUTE, LEN i FIND. U prikazanom primjeru formula u ćeliji B5 je:

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

Obrazloženje

Ova formula koristi funkciju MID za uklanjanje posljednje riječi iz tekstualnog niza. Glavni je izazov shvatiti gdje započinje posljednja riječ.

Formula je pomalo zamršena, ali koraci su jednostavni. Prvo računamo koliko razmaka u tekstu postoji pomoću LEN i ZAMJENA. Dalje, koristimo pomalo nejasan argument "instance" u funkciji SUBSTITUTE da bismo zadnji prostor zamijenili tildom (~). Konačno, koristimo FIND kako bismo shvatili gdje je tilda, a MID funkcija za odbacivanje svega nakon tilde.

Radeći iznutra prema van, koristimo funkcije LEN i SUBSTITUTE da bismo izračunali koliko se razmaka pojavljuje u sljedećem:

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

Za tekst u B5 vraća se 6. Ova stranica detaljnije objašnjava ovaj dio formule. To nam govori da želimo smanjiti tekst na 6. razmak.

Napomena: ako su riječi odvojene od više razmaka, prvo ćete trebati normalizirati razmake funkcijom TRIM.

Broj 6 zatim se uključuje u drugu ZAMJENU kao "broj instance":

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

Ovdje zamjenjujemo 6. primjerak razmaka ("") s tildom (~). Nakon izvođenja SUBSTITUTE, vraća ovaj niz:

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

Napomena: koristimo tildu (~) samo zato što je riječ o rijetko pojavljujućem liku. Možete koristiti bilo koji znak koji vam se sviđa, sve dok se ne pojavljuje u izvornom tekstu.

Dalje koristimo funkciju FIND za pronalaženje tilde:

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

FIND vraća 34, jer je tilda 34. znak. Od ovog broja oduzimamo 1 jer ne želimo uključiti posljednji razmak u konačni rezultat. Sada formulu možemo pojednostaviti na:

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

Funkcija MID zatim vraća znakove 1-33:

"It's been seven hours and fifteen"

S prilagođenim graničnikom

Ista se formula može koristiti s različitim graničnikom. Na primjer, da biste uklonili sav tekst nakon posljednje kose crte "/", možete upotrijebiti:

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

Uklonite posljednjih n riječi

Formulu možete prilagoditi tako da uklonite posljednje 2 riječi, posljednje 3 riječi itd. Općeniti oblik je:

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

gdje je d graničnik, a n broj riječi koje treba ukloniti.

Zanimljivi članci...