![](https://cdn.wiki-base.com/2973009/excel_formula_get_last_name_from_name__2.png.webp)
Általános képlet
=RIGHT(name,LEN(name)-FIND("*",SUBSTITUTE(name," ","*",LEN(name)-LEN(SUBSTITUTE(name," ","")))))
Összegzés
Ha a vezetéknévről egy teljes névre van szükség, akkor ezt a meglehetősen összetett képlettel teheti meg, amely több funkciót használ. A (fenti) képlet általános formájában a név teljes név, szóközzel elválasztva az utónevet a név többi részétől.
A példában az aktív cella a következő képletet tartalmazza:
=RIGHT(B4,LEN(B4)-FIND("*",SUBSTITUTE(B4," ","*",LEN(B4)-LEN(SUBSTITUTE(B4," ","")))))
Magyarázat
Lényegében ez a képlet a JOBB függvényt használja a jobbról kezdődő karakterek kibontására. A képlet összetett részét alkotó többi függvény csak egyet tesz: kiszámítják, hány karaktert kell kibontani.
Magas szinten a képlet a név utolsó helyét "*" csillaggal helyettesíti, majd a FIND segítségével meghatározza a csillag helyét a névben. A pozíció arra szolgál, hogy kiderítse, hány karaktert kell kinyerni a JOBBAL.
Hogyan helyettesíti a függvény csak az utolsó szóközt? Ez az okos rész.
Csat fel, a magyarázat kissé technikussá válik.
Ehhez a képlethez ez a kulcs kulcs:
SUBSTITUTE(B4," ","*",LEN(B4)-LEN(SUBSTITUTE(B4," ","")))
Melyik az utolsó szóköz tényleges helyettesítése "*" -val.
A SUBSTITUTE-nak van egy negyedik (opcionális) argumentuma, amely meghatározza, hogy a keresési szöveg melyik "példányát" kell kicserélni. Ha ehhez az argumentumhoz nincs megadva semmi, akkor az összes példány kicserélődik. Ha azonban mondjuk a 2-es számot adják meg, akkor csak a második példány kerül kicserélésre. A fenti részletben a példány kiszámítása a második SUBSTITUTE használatával történik:
LEN(B4)-LEN(SUBSTITUTE(B4," ",""))
Itt a név szóköz nélküli hosszát kivonjuk a név tényleges hosszából. Ha csak egy szóköz van a névben, akkor 1-et eredményez. Ha két szóköz van, akkor az eredmény 2, és így tovább.
A B4 példában szereplő névben két szóköz van a névben, így kapjuk:
15 - 13 = 2
És kettőt használunk, mint a példányszámban:
SUBSTITUTE(B4," ","*",2)
amely a második helyet "*" -re cseréli. A név ekkor így néz ki:
"Susan Ann * Chang"
A FIND függvény ekkor veszi át, hogy kiderítse, hol található a "*" a névben:
FIND("*", "Susan Ann*Chang")
Az eredmény 10 (a * a 10. pozícióban van), amelyet kivonunk a név teljes hosszából:
LEN(B4)-10
Mivel a név 15 karakter, ezért:
15-10 = 5
Az 5-ös számot RIGHT használja, így:
=RIGHT(B4,5)
Ami "Chang" -t eredményez
Mint látható, sok munka fent van az egyszerű 5 kiszámításához!
Inkonzisztens terek kezelése
Az extra szóközök problémákat okoznak ezzel a képlettel. Az egyik megoldás az, hogy először a TRIM funkciót használja a dolgok tisztítására, majd az elemzési képletet használja.