Formel for å finne etternavn
Denne artikkelen gikk ut på dato etter at Microsoft 365 fikk funksjonen TekstEtter().
Den finner du her: https://www.excelguru.no/tekstetter-na-kan-vi-soke-fra-hoyre/
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 (28 downloads )