Antag du har en liste med folks navne i en enkelt kolonne. Du adskiller disse navne i tre kolonner: en til fornavnet, en til mellemnavnet og en til efternavnet. Denne opgave er mere kompliceret end du måske først tror, da ikke alle navne i kolonne har et mellemnavn og initialer. Du kan dog stadig gøre dette.
Denne opgave bliver meget mere kompliceret, hvis listen indeholder navne med titler (som Hr. eller Fru) eller navne efterfulgt af yderligere detaljer (som Jr. eller IV). Faktisk vil de følgende formler ikke håndtere disse komplicerede tilfælde. Men de giver dig et forspring, hvis du er villig til at gøre lidt manuelt redigeringsarbejde i de specielle tilfælde.
Opdel tekst uden brug af formler
I mange tilfælde kan du undgår at bruge formler og i stedet bruge Excels værktøj Data → Dataværktøjer → Tekst til kolonner til at opdele strenge i det dele. Når dette værktøj vælges vises dialogboksen Guiden Konverter Tekst til kolonner (se den tilhørende figur), som består af se serie af dialogbokse, der tager dig igennem konverteringen af en enkelt kolonne med data til flere kolonner. Normalt skal du angive indstillingen Afgrænset (trin 1) og bruge Mellemrum som afgrænser (i trin 2).
De følgende formler antager alle at navnene optræder i celle A1.
Du kan nemt konturere en formel, der returnere fornavnet:
=HVIS.FEJL(VENSTRE(A1;FIND(" ";A1)-1);A1)
Returnering af mellemnavn eller initialer er mere kompliceret da ikke alle navne har et mellemnavn eller initial. Denne formel returnere et mellemnavn eller initial (hvis det findes), og ellers returneres ingen ting:
=HVIS(LÆNGDE(A1)-LÆNGDE(UDSKIFT(A1;" ";""))>1;MIDT(A1;FIND(" ";A1)+1;FIND(" ";A1;FIND(" ";A1)+1)-(FIND(" ";A1)+1));"")
Til sidst returnere denne formel efternavnet:
=HVIS.FEJL(HØJRE(A1;LÆNGDE(A1)-FIND("*";UDSKIFT(A1;" ";"*";LÆNGDE(A1)-LÆNGDE(UDSKIFT(A1;" ";"")))));"")
Den følgende formel er en meget kortere måde at udtrække mellemnavnet. Denne formel er brugbar hvis du bruger andre formler til at udtrække fornavn og efternavn. Den antager at fornavnet er i B1 og efternavnet er i D1.
=HVIS(LÆNGDE(B1&D1)+2>=LÆNGDE(A1);"";MIDT(A1;LÆNGDE(B1)+2;LÆNGDE(A1)-LÆNGDE(B1&D1)-2))
Som du kan se i figuren, fungerer formlen rimelig godt. Der er dog nogle få problemer: mest af alt navne der indeholder fire ord. Men som jeg nævnte tidligere kan du rydde op i disse tilfælde.
Tæl antallet af ord i en celle
Den følgende formel returnere antallet af ord i celle A1:
=LÆNGDE(FJERN.OVERFLØDIGE.BLANKE(A1))-LÆNGDE(UDSKIFT((A1);" ";""))+1
Denne formel bruger funktionen FJERN.OVERFLØDIGE.BLANKE til at fjerne ekstra mellemrum. Derefter bruges funktionen UDSKIFT til at oprette en streng (i hukommelsen), der har fået fjernet alle mellemrumstegne. Længden på denne streng trækkes fra længden på den oprindelige streng for at få antallet af mellemrum. Denne værdi øges med 1 for at få antallet af ord.
Bemærk at denne formel returnerer 1 hvis cellen er tom. Den følgende modifikation løser dette problem:
=HVIS(LÆNGDE(A1)=0;0;LÆNGDE(FJERN.OVERFLØDIGE.BLANKE(A1))-LÆNGDE(UDSKIFT((A1);" ";""))+1)
One Comment