Formel for å finne etternavn

with Ingen kommentarer

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

Abonner på ExcelGurus Youtube-kanal
(Artikkelen fortsetter under videoruten. Excelboken som benyttes i videoen kan du laste ned i bunnen av artikkelen)

 

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 (10 downloads)