Avatar billede btoe Nybegynder
25. juli 2014 - 11:44 Der er 6 kommentarer og
2 løsninger

Deling af navne i excel

Jeg har en celle hvor det fulde navn står, men skal have det delt op i fornavn(e) og efternavn.
Jeg er med på, at man kan bruge tekst til kolonner, men så får jeg 3 felter, når en person f.eks. hedder Anne Grethe Olsen eller Mia Jensen Johnsen - hvordan kan jeg få dem splittet op i to kolonner så der kommer til at stå Anne Grethe i det ene felt og Olsen i det andet?
Avatar billede store-morten Ekspert
25. juli 2014 - 12:49 #1
Indsæt koden i et modul:
Function DelNavn(cel As String, del As String) As String

If IsEmpty(cel) Then Exit Function
    If del = 1 Or del = 2 Or del = 3 Then
        Select Case del
            Case Is = 1
                If InStrRev(cel, " ") = 0 Then
                    DelNavn = cel
                Else
                    DelNavn = Mid(cel, 1, InStr(1, cel, " ", 1) - 1)
                End If
            Case Is = 2
                If InStr(1, cel, " ", 1) = InStrRev(cel, " ") Then
                    DelNavn = Mid(cel, InStrRev(cel, " ") + 1, Len(cel))
                Else
                    DelNavn = Mid(cel, (InStr(1, cel, " ", 1) + 1), InStrRev(cel, " ") _
                    - InStr(1, cel, " ", 1) - 1)
                End If
            Case Is = 3
                DelNavn = Mid(cel, InStrRev(cel, " ") + 1, Len(cel))
        End Select
    Else
        DelNavn = CVErr(xlErrValue)
    End If
End Function

A1: celle hvor det fulde navn står
Fornavn
B1: =Delnavn(A1; 1)
Mellemnavne
C1: =Delnavn(A1; 2)
Efternavn
D1: =Delnavn(A1; 3)

Fornavn og Mellemnavn i en celle
B1: =Delnavn(A1; 1) & " " & Delnavn(A1; 2)
Efternavn
C1: =Delnavn(A1; 3)
Avatar billede btoe Nybegynder
25. juli 2014 - 13:10 #2
Puha det lyder avanceret, når man ikke er nogen excel nørd overhovedet.....
Hvordan indsætter du et modul??
Avatar billede sdh Mester
25. juli 2014 - 13:47 #3
Du kan også benytte en ganske almindelig formel.
Hvis vi forudsætter at efternavn altid kommer efter sidste mellemrum:

Formel for efternavn i kolonne C:
=MIDT(A2;FIND("^";UDSKIFT(A2;" ";"^";LÆNGDE(A2)-LÆNGDE(UDSKIFT(A2;" ";""))))+1;256)

Herefter formel for fornavn/fornavne i kolonne B:
=VENSTRE(A2;LÆNGDE(A2)-LÆNGDE(C2)-1)
Avatar billede store-morten Ekspert
25. juli 2014 - 14:01 #4
Kopier koden.
I Excel
Tryk alt+F11
Insert --> Module --> ctrl + v --> Luk på det røde kryds.

Indsæt der efter formler.
Avatar billede btoe Nybegynder
26. juli 2014 - 12:04 #5
Hej
Jeg har nu prøvet begge modeller og de virker!
Tak for hjælpen.
Jeg vil gerne give jer begge point, men kan ikke lige se, hvordan det virker :-(
Avatar billede btoe Nybegynder
26. juli 2014 - 12:05 #6
Aha - jeg skal bare bede jer om et svar, så kan jeg give point :-)
Så venligst send mig et svar og ikke en kommentar - så skal i nok få point :-)
Avatar billede store-morten Ekspert
26. juli 2014 - 12:06 #7
Ok, velbekomme.
Avatar billede sdh Mester
26. juli 2014 - 12:08 #8
Hermed et svar:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester