Excel képlet: Szerezze be a vezetéknevet a névből

Tartalomjegyzék

Á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.

érdekes cikkek...