Vi har tidligere laget en makro for å finne etternavn ut fra et fullt navn, og denne gangen skal vi gjøre det samme ved hjelp av en formel.

Utfordringen er at det ikke er noen funksjon i Excel som kan søke i en tekst fra høyre mot venstre. Finn() finner enkelt første forekomst av mellomrom i en tekststreng, men ikke siste forekomst.

Altså må vi gjøre noe lurt.

For deg som har det skikkelig travelt, er formelen:

=HVISFEIL(DELTEKST(A2;FINN("-x-";BYTT.UT(A2;" ";"-x-";LENGDE(A2)-LENGDE(BYTT.UT(A2;" ";""))))+1;100);A2)

Formelen over forutsetter at navnet står i A2

(Artikkelen fortsetter under videoruten. )

Vi tar det steg for steg

Finner lengden på navnet

=LENGDE(A2)

Finner lengden på navnet hvis vi fjerner alle mellomrommene (bytter ut mellomrommene med ingenting)

=LENGDE(BYTT.UT(A2;" ";""))

Finner antall mellomrom ved å trekke lengden uten mellomrom i fra lengden av navnet

=LENGDE(A2)-LENGDE(BYTT.UT(A2;" ";""))

Bytter ut det siste mellomrommet med en tekst som ikke vil finnes i et etternavn ‘-x-‘

=BYTT.UT(A2;" ";"-x-";LENGDE(A2)-LENGDE(BYTT.UT(A2;" ";"")))

Finner hvor i teksten ‘-x-‘ har havnet

=FINN("-x-";BYTT.UT(A2;" ";"-x-";LENGDE(A2)-LENGDE(BYTT.UT(A2;" ";""))))

Plukker teksten som ligger til høyre for posisjonen hvor vi fant ‘-x-‘

=DELTEKST(A2;FINN("-x-";BYTT.UT(A2;" ";"-x-";LENGDE(A2)-LENGDE(BYTT.UT(A2;" ";""))))+1;100)

Pakker formelen inn i HVISFEIL() slik at den returnerer hele navnet hvis det ikke er noe mellomrom i strengen.

=HVISFEIL(DELTEKST(A2;FINN("-x-";BYTT.UT(A2;" ";"-x-";LENGDE(A2)-LENGDE(BYTT.UT(A2;" ";""))))+1;100);A2)

Last ned Excelboken her: Etternavn-Formel-som-returnerer-siste-del-av-navnet.xlsx (12 downloads)

Similar Posts