TEXTSPLIT-funktionen i Excel: opdele tekststrenge efter afgrænser

  • Del Dette
Michael Brown

Vejledningen viser, hvordan du bruger den helt nye TEXTSPLIT-funktion til at opdele strenge i Excel 365 med en hvilken som helst afgrænser, som du angiver.

Der kan være forskellige situationer, hvor du har brug for at opdele celler i Excel. I tidligere versioner var vi allerede udstyret med en række instrumenter til at udføre opgaven, f.eks. tekst til kolonner og Fill Flash. Nu har vi også en særlig funktion til dette, TEXTSPLIT, der kan opdele en streng i flere celler på tværs af kolonner og/eller rækker baseret på de parametre, du angiver.

    Excel TEXTSPLIT-funktionen

    Funktionen TEXTSPLIT i Excel opdeler tekststrenge efter en given afgrænser på tværs af kolonner og/eller rækker. Resultatet er et dynamisk array, der automatisk fylder flere celler.

    Funktionen kan tage op til 6 argumenter, hvoraf kun de to første er nødvendige.

    TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])

    tekst (påkrævet) - den tekst, der skal opdeles. Kan angives som en streng eller som en cellehenvisning.

    col_delimiter (påkrævet) - et eller flere tegn, der angiver, hvor teksten skal opdeles på tværs af kolonnerne. Hvis udeladt, row_delimiter skal defineres.

    row_delimiter (valgfrit) - et eller flere tegn, der angiver, hvor teksten skal opdeles på tværs af rækker.

    ignore_empty (valgfri) - angiver, om tomme værdier skal ignoreres eller ej:

    • FALSE (standard) - opretter tomme celler for på hinanden følgende afgrænsere uden en værdi mellem dem.
    • TRUE - ignorer tomme værdier, dvs. opretter ikke tomme celler for to eller flere på hinanden følgende afgrænsere.

    match_mode (valgfrit) - bestemmer, om der skal tages hensyn til store og små bogstaver for afgrænseren. Aktiveret som standard.

    • 0 (standard) - skift mellem store og små bogstaver
    • 1 - ikke skelne mellem store og små bogstaver

    pad_with (valgfrit) - en værdi, der skal anvendes i stedet for manglende værdier i todimensionale arrays. Standardværdien er en #N/A-fejl.

    Hvis du f.eks. vil opdele en tekststreng i A2 i flere celler ved hjælp af et komma og et mellemrum som separator, er formlen:

    =TEXTSPLIT(A2, ", ")

    TEXTSPLIT tilgængelighed

    Funktionen TEXTSPLIT er kun tilgængelig i Excel til Microsoft 365 (Windows og Mac) og Excel til internettet.

    Tips:

    • I Excel-versioner, hvor funktionen TEXTSPLIT ikke er tilgængelig (bortset fra Excel 365), kan du bruge guiden Tekst til kolonner til at opdele celler.
    • For at udføre den omvendte opgave, dvs. for at samle indholdet af flere celler i én celle ved hjælp af en bestemt afgrænser, er TEXTJOIN den funktion, der skal bruges.

    Grundlæggende TEXTSPLIT-formel til at opdele en celle i Excel

    Lad os først se, hvordan du bruger en TEXTSPLIT-formel i sin enkleste form til at opdele en tekststreng ved en bestemt afgrænser.

    Opdele en celle vandret på tværs af kolonner

    Hvis du vil opdele indholdet af en given celle i flere kolonner, skal du angive en henvisning til den celle, der indeholder den oprindelige streng for den første ( tekst ) og den afgrænser, der markerer det punkt, hvor opdelingen skal finde sted for det andet ( col_delimiter ) argument.

    For at adskille strengen i A2 vandret med kommaer er formlen f.eks:

    =TEXTSPLIT(A2, ",")

    Som afgrænser bruger vi et komma omgivet af dobbelte anførselstegn (",").

    Som et resultat heraf bliver hvert element adskilt med et komma placeret i en separat kolonne:

    Opdele en celle lodret på tværs af rækker

    For at opdele tekst på flere rækker skal det tredje argument ( row_delimiter ) er det sted, hvor du placerer afgrænseren. Det andet argument ( col_delimiter ) er udeladt i dette tilfælde.

    For at adskille værdierne i A2 i forskellige rækker er formlen f.eks:

    =TEXTSPLIT(A2, ,",")

    Bemærk, at formlen i begge tilfælde kun indtastes i én celle (C2). I de tilstødende celler spildes de returnerede værdier automatisk. Det resulterende array (som kaldes et spildområde) er fremhævet med en blå kant, hvilket indikerer, at alt inden for det er beregnet af formlen i den øverste venstre celle.

    Opdele tekst efter delstreng

    I mange tilfælde er værdierne i kildestrengen adskilt af en sekvens af tegn, f.eks. et komma og et mellemrum. For at håndtere dette scenarie skal du bruge en delstreng som afgrænsningsled.

    Hvis du f.eks. vil adskille teksten i A2 i flere kolonner med et komma og et mellemrum, skal du bruge strengen ", " for col_delimiter .

    =TEXTSPLIT(A2, ", ")

    Formlen indsættes i B2, og derefter kopierer du den ned gennem så mange celler som nødvendigt.

    Opdele streng i kolonner og rækker på én gang

    Hvis du vil opdele en tekststreng i rækker og kolonner ad gangen, skal du definere begge afgrænsere i din TEXTSPLIT-formel.

    For at opdele tekststrengen i A2 på tværs af kolonner og rækker skal vi f.eks. angive:

    • Ligningstegnet ("=") for col_delimiter
    • Et komma og et mellemrum (", ") for row_delimiter

    Den fuldstændige formel har denne form:

    =TEXTSPLIT(A2, "=", ", ", ")

    Resultatet er et 2-D array bestående af 2 kolonner og 3 rækker:

    Adskil celler med flere afgrænsere

    Hvis du vil håndtere flere eller inkonsekvente afgrænsere i kildestrengen, skal du bruge en arraykonstant som {"x", "y", "z"} som argument for afgrænseren.

    I skærmbilledet nedenfor er teksten i A2 afgrænset af både kommaer (",") og semikolon (";") med og uden mellemrum. For at opdele strengen lodret i rækker ved alle 4 varianter af afgrænseren, er formlen:

    =TEXTSPLIT(A2, , , {",",",", ",";",",";"; "})

    Du kan også kun inkludere et komma (",") og et semikolon (";") i arrayet og derefter fjerne ekstra mellemrum ved hjælp af TRIM-funktionen:

    =TRIM(TEXTSPLIT(A2, , , {",",",";"}))

    Opdeling af tekst uden hensyntagen til tomme værdier

    Hvis strengen indeholder to eller flere på hinanden følgende afgrænsere uden en værdi mellem dem, kan du vælge, om du vil ignorere sådanne tomme værdier eller ej. Denne adfærd styres af den fjerde ignore_empty parameteren, der som standard er FALSE.

    Som standard ignorerer TEXTSPLIT-funktionen ikke tomme værdier. Standardadfærden fungerer fint for strukturerede data, som i nedenstående eksempel.

    I denne eksempeltabel mangler scorerne i nogle strenge. TEXTSPLIT-formlen med ignore_empty argumentet udeladt eller sat til FALSE håndterer dette tilfælde perfekt, idet der oprettes en tom celle for hver tom værdi.

    =TEXTSPLIT(A2, ", ")

    Eller

    =TEXTSPLIT(A2, ", ", ", FALSE)

    Som følge heraf vises alle værdierne i de relevante kolonner.

    Hvis dine strenge indeholder ensartede data, kan det være fornuftigt at ignorere tomme værdier. ignore_empty argumentet til TRUE eller 1.

    For at opdele nedenstående strenge ved at placere hver færdighed i en separat celle uden mellemrum er formlen f.eks:

    =TEXTSPLIT(A2, ", ", ,TRUE)

    I dette tilfælde ignoreres de manglende værdier mellem på hinanden følgende afgrænsere fuldstændigt:

    Opdeling af celler efter helsætningsfølsom eller ikke-helsætningsfølsom

    Hvis du vil kontrollere, om afgrænseren er stregfølsom over for store og små bogstaver, skal du bruge det femte argument, match_mode .

    Som standard, match_mode er sat til 0, hvilket gør TEXTSPLIT skraldefølsom .

    I dette eksempel er tallene adskilt af bogstaverne "x" med små bogstaver og "X" med store bogstaver.

    Formlen med standardfølsomhed over for store og små bogstaver accepterer kun det lille "x" som afgrænseren:

    =TEXTSPLIT(A2, " x ")

    Vær opmærksom på, at afgrænseren har et mellemrum på begge sider af bogstavet " x " for at undgå ledende og afsluttende mellemrum i resultaterne.

    Hvis du vil slå genkendelighed for store og små bogstaver fra, skal du angive 1 for match_mode for at tvinge TEXTSPLIT-formlen til at ignorere bogstaver:

    =TEXTSPLIT(A2, " x ", , ,1)

    Nu er alle strenge opdelt korrekt med begge afgrænsere:

    Udfyld manglende værdier i 2D-array

    Det sidste argument i TEXTSPLIT-funktionen, pad_with Når en sådan streng er opdelt i både kolonner og rækker, returnerer Excel som standard #N/A-fejl i stedet for de manglende værdier, så strukturen i et todimensionelt array ikke bliver ødelagt.

    I nedenstående streng er der ingen "=" ( col_delimiter ) efter "Score". For at bevare integriteten af det resulterende array udsender TEXTSPLIT #N/A ved siden af "Score".

    For at gøre resultatet mere brugervenligt kan du erstatte #N/A-fejlen med en hvilken som helst værdi, du ønsker. Du skal blot skrive den ønskede værdi i feltet pad_with argument.

    I vores tilfælde kan det være en bindestreg ("-"):

    =TEXTSPLIT(A2, "=", ", ", ", , ,"-")

    Eller en tom streng (""):

    =TEXTSPLIT(A2, "=", ", ", ", ", , , ,"")

    Nu hvor du har lært om praktisk brug af hvert enkelt argument i TEXTSPLIT-funktionen, vil vi diskutere et par avancerede eksempler, der kan hjælpe dig med at klare ikke-trivielle udfordringer i dine Excel-regneark.

    Opdele datoer i dag, måned og år

    Hvis du vil opdele en dato i individuelle enheder, skal du først konvertere datoen til tekst, fordi TEXTSPLIT-funktionen behandler tekststrenge, mens Excel-datoer er tal.

    Den nemmeste måde at konvertere en numerisk værdi til tekst på er ved hjælp af TEXT-funktionen. Du skal blot sørge for at angive en passende formatkode for din dato.

    I vores tilfælde er formlen:

    =TEXT(A2, "m/d/åååå")

    Det næste skridt er at indlejre ovenstående funktion i det første argument i TEXTSPLIT og indtaste den tilsvarende afgrænser i det andet eller tredje argument, afhængigt af om du opdeler på tværs af kolonner eller rækker. I dette eksempel er datoenhederne afgrænset med skråstreger, så vi bruger "/" for col_delimiter argument:

    =TEXTSPLIT(TEXT(A2, "m/d/åååå"), "/")

    Opdele celler og fjerne visse tegn

    Forestil dig dette: Du har delt en lang streng i stykker, men det resulterende array indeholder stadig nogle uønskede tegn, f.eks. parenteser i skærmbilledet nedenfor:

    =TEXTSPLIT(A2, " ", ", "; ")

    Hvis du vil fjerne den indledende og afsluttende parentes ad gangen, skal du sætte to SUBSTITUTE-funktioner ind i hinanden (hver af dem erstatter en parentes med en tom streng) og bruge TEXTSPLIT-formlen til den tekst argumentet i den indre SUBSTITUTE:

    =SUBSTITUT(SUBSTITUTE(SUBSTITUTE(TEXTSPLIT(A2, " " ", "; "), "(", ""), ")", ")", "")

    Tip. Hvis det endelige array indeholder for mange ekstra tegn, kan du fjerne dem ved hjælp af en af de metoder, der er beskrevet i denne artikel: Sådan fjerner du uønskede tegn i Excel.

    Opdele strenge, der springer visse værdier over

    Hvis du ønsker at adskille nedenstående strenge i 4 kolonner: Fornavn , Efternavn , Score , og Resultat Problemet er, at nogle strenge indeholder titlen "Mr." eller "Ms.", og at resultaterne derfor er helt forkerte:

    Løsningen er ikke indlysende, men ganske enkel :)

    Ud over de eksisterende afgrænsere, som er et mellemrum (" ") og et komma og et mellemrum (", "), inkluderer du strengene "Mr." og "Ms." i col_delimiter array-konstant, så funktionen bruger selve titlerne til at adskille teksten. For at ignorere tomme værdier indstiller man ignore_empty argumentet til TRUE.

    =TEXTSPLIT(A2, {" ",",", ", "Hr.", "Fru"}, ,TRUE)

    Nu er resultatet helt perfekt!

    TEXTSPLIT alternativer

    I Excel-versioner, hvor TEXTSPLIT-funktionen ikke understøttes, kan du opdele strenge ved at bruge forskellige kombinationer af funktionen SØG / FIND med VENSTRE, HØJRE og MIDT:

    • Case-insensitive SEARCH eller case-sensitive FIND bestemmer placeringen af afgrænseren i en streng, og
    • Funktionerne LEFT, RIGHT og MID uddrager en delstreng før, efter eller mellem to forekomster af afgrænseren.

    I vores tilfælde skal værdierne, der er adskilt af et komma og et mellemrum , lyder formlerne som følger.

    Sådan uddrages navnet:

    =LEFT(A2, SEARCH(",", A2, 1) -1)

    For at trække scoren:

    =MID(A2, SEARCH(",", A2) + 2, SEARCH(",", A2, SEARCH(",",A2)+1) - SEARCH(",", A2) - 2)

    Sådan får du resultatet:

    =RIGHT(A2, LEN(A2) - SEARCH(",", A2, SEARCH(",",", A2) + 1)-1)

    Du kan finde en detaljeret forklaring på formlernes logik i Hvordan man opdeler strenge efter tegn eller maske.

    Husk på, at i modsætning til funktionen TEXTSPLIT til dynamisk array følger disse formler den traditionelle metode med én formel i én celle: Du indtaster formlen i den første celle og trækker den derefter ned i kolonnen for at kopiere den til de efterfølgende celler.

    Skærmbilledet nedenfor viser resultaterne:

    Sådan opdeler du celler i Excel 365 ved hjælp af TEXTSPLIT eller alternative løsninger i tidligere versioner. Tak fordi du læste med, og jeg håber at se dig på vores blog i næste uge!

    Arbejdsbog til download

    TEXTSPLIT-funktion til opdeling af strenge - eksempler på formler (.xlsx-fil)

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.