Excel formula: Dobijte prezime od imena -

Sadržaj

Generička formula

=RIGHT(name,LEN(name)-FIND("*",SUBSTITUTE(name," ","*",LEN(name)-LEN(SUBSTITUTE(name," ","")))))

Sažetak

Ako trebate izvući prezime iz punog imena, to možete učiniti s ovom prilično složenom formulom koja koristi nekoliko funkcija. U generičkom obliku formule (gore), ime je puno ime, s razmakom koji odvaja ime od ostalih dijelova imena.

U primjeru aktivna ćelija sadrži ovu formulu:

=RIGHT(B4,LEN(B4)-FIND("*",SUBSTITUTE(B4," ","*",LEN(B4)-LEN(SUBSTITUTE(B4," ","")))))

Obrazloženje

U osnovi, ova formula koristi funkciju DESNO za izdvajanje znakova počevši s desne strane. Ostale funkcije koje čine složeni dio ove formule čine samo jedno: izračunavaju koliko znakova treba izdvojiti.

Na visokoj razini, formula zamjenjuje posljednji razmak u nazivu zvjezdicom "*", a zatim koristi FIND za određivanje položaja zvjezdice u imenu. Položaj se koristi za utvrđivanje koliko znakova treba izvući DESNO.

Kako funkcija zamjenjuje samo zadnji razmak? Ovo je pametni dio.

Privežite se, objašnjenje postaje pomalo tehničko.

Oni su ključni za ovu formulu:

SUBSTITUTE(B4," ","*",LEN(B4)-LEN(SUBSTITUTE(B4," ","")))

Što znači stvarnu zamjenu posljednjeg razmaka sa "*".

SUBSTITUTE ima četvrti (neobavezni) argument koji određuje koju "instancu" teksta pronalaska treba zamijeniti. Ako se za ovaj argument ne navede ništa, zamjenjuju se sve instance. Međutim, ako je, recimo, naveden broj 2, zamjenjuje se samo drugi stupanj. U gornjem isječku, instanca se izračunava pomoću drugog ZAMJENA:

LEN(B4)-LEN(SUBSTITUTE(B4," ",""))

Ovdje se duljina imena bez ikakvih razmaka oduzima od stvarne duljine imena. Ako je u nazivu samo jedan razmak, on daje 1. Ako postoje dva razmaka, rezultat je 2 i tako dalje.

U primjeru imena u B4, u nazivu su dva razmaka, pa dobivamo:

15 - 13 = 2

A dva se koristi kao u broju instance:

SUBSTITUTE(B4," ","*",2)

koji drugi razmak zamjenjuje s "*". Naziv tada izgleda ovako:

"Susan Ann * Chang"

Zatim funkcija FIND preuzima kako bi shvatila gdje je "*" u imenu:

FIND("*", "Susan Ann*Chang")

Rezultat je 10 (* je na 10. mjestu) što se oduzima od ukupne duljine imena:

LEN(B4)-10

Budući da je ime 15 znakova, imamo:

15-10 = 5

Broj 5 koristi DESNO tako:

=RIGHT(B4,5)

Što rezultira "Changom"

Kao što vidite, gore je puno posla kako bi se izračunalo to jednostavno 5!

Rukovanje nedosljednim prostorima

Dodatni razmaci uzrokovat će probleme s ovom formulom. Jedno od rješenja je prvo koristiti funkciju TRIM za čišćenje stvari, a zatim upotrijebiti formulu za raščlanjivanje.

Zanimljivi članci...