Functie TEXTSPLIT in Excel: tekststrings splitsen door scheidingsteken

  • Deel Dit
Michael Brown

De handleiding laat zien hoe u de gloednieuwe functie TEXTSPLIT kunt gebruiken om strings in Excel 365 te splitsen door een willekeurig scheidingsteken dat u opgeeft.

Er kunnen zich verschillende situaties voordoen waarin u cellen moet splitsen in Excel. In eerdere versies beschikten we al over een aantal instrumenten om deze taak uit te voeren, zoals Tekst naar kolommen en Vulflits. Nu hebben we hier ook een speciale functie voor, TEXTSPLIT, die een tekenreeks kan splitsen in meerdere cellen over kolommen en/of rijen op basis van de parameters die u opgeeft.

    Excel TEXTSPLIT functie

    De functie TEXTSPLIT in Excel splitst tekststrings door een gegeven scheidingsteken over kolommen en/of rijen. Het resultaat is een dynamische matrix die automatisch in meerdere cellen terechtkomt.

    De functie neemt maar liefst 6 argumenten aan, waarvan alleen de eerste twee vereist zijn.

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

    tekst (vereist) - de te splitsen tekst. Kan worden opgegeven als een tekenreeks of een celverwijzing.

    col_delimiter (vereist) - een teken (of tekens) dat aangeeft waar de tekst over de kolommen moet worden verdeeld. Indien weggelaten, rij_scheidingsteken moet worden gedefinieerd.

    rij_scheidingsteken (facultatief) - een of meer tekens die aangeven waar de tekst over de rijen moet worden verdeeld.

    negeer_leeg (facultatief) - geeft aan of lege waarden al dan niet moeten worden genegeerd:

    • FALSE (standaard) - maak lege cellen voor opeenvolgende scheidingstekens zonder waarde ertussen.
    • TRUE - negeer lege waarden, d.w.z. maak geen lege cellen voor twee of meer opeenvolgende scheidingstekens.

    match_mode (optioneel) - bepaalt de hoofdlettergevoeligheid voor het scheidingsteken. Standaard ingeschakeld.

    • 0 (standaard) - hoofdlettergevoelig
    • 1 - hoofdletterongevoelig

    pad_met (facultatief) - een waarde om te gebruiken in plaats van ontbrekende waarden in tweedimensionale arrays. De standaardwaarde is een #N/A-fout.

    Om bijvoorbeeld een tekststring in A2 op te delen in meerdere cellen met een komma en een spatie als scheidingsteken, is de formule:

    =TEXTSPLIT(A2, ", ")

    Beschikbaarheid van teksten

    De functie TEXTSPLIT is alleen beschikbaar in Excel voor Microsoft 365 (Windows en Mac) en Excel voor het web.

    Tips:

    • In Excel-versies waar de functie TEXTSPLIT niet beschikbaar is (anders dan Excel 365), kunt u de wizard Tekst naar kolommen gebruiken om cellen te splitsen.
    • Om de omgekeerde taak uit te voeren, d.w.z. om de inhoud van meerdere cellen samen te voegen tot één met een bepaald scheidingsteken, is TEXTJOIN de te gebruiken functie.

    Basisformule TEXTSPLIT om een cel te splitsen in Excel

    Laten we om te beginnen eens kijken hoe een TEXTSPLIT-formule in zijn eenvoudigste vorm kan worden gebruikt om een tekststring te splitsen door een bepaald scheidingsteken.

    Een cel horizontaal splitsen over kolommen

    Om de inhoud van een gegeven cel in meerdere kolommen te verdelen, geeft u voor de eerste ( tekst ) argument en het scheidingsteken dat het punt markeert waar de splitsing moet plaatsvinden voor het tweede ( col_delimiter ) argument.

    Bijvoorbeeld, om de string in A2 horizontaal te scheiden door een komma, is de formule:

    =TEXTSPLIT(A2, ",")

    Als scheidingsteken gebruiken wij een komma tussen dubbele aanhalingstekens (",").

    Bijgevolg komt elk item gescheiden door een komma in een afzonderlijke kolom:

    Een cel verticaal splitsen over rijen

    Om tekst te splitsen over meerdere rijen, moet het derde argument ( rij_scheidingsteken ) is waar u het scheidingsteken plaatst. Het tweede argument ( col_delimiter ) wordt in dit geval weggelaten.

    Bijvoorbeeld, om de waarden in A2 te scheiden in verschillende rijen, is de formule:

    =TEXTSPLIT(A2, ,",")

    Merk op dat in beide gevallen de formule slechts in één cel (C2) wordt ingevoerd. In de aangrenzende cellen worden de teruggegeven waarden automatisch overlopen. De resulterende matrix (die een overlooibereik wordt genoemd) wordt gemarkeerd met een blauwe rand om aan te geven dat alles daarin wordt berekend door de formule in de cel linksboven.

    Tekst splitsen per substring

    In veel gevallen worden de waarden in de bronstring gescheiden door een reeks tekens, waarvan een komma en een spatie een typisch voorbeeld zijn. Om met dit scenario om te gaan, gebruikt u een substring als scheidingsteken.

    Om bijvoorbeeld de tekst in A2 in meerdere kolommen te scheiden door een komma en een spatie, gebruikt u de tekenreeks ", " voor col_delimiter .

    =TEXTSPLIT(A2, ", ")

    Deze formule gaat naar B2, en dan kopieert u hem naar beneden door zoveel cellen als nodig is.

    Splits string in kolommen en rijen tegelijk

    Om een tekststring op te splitsen in rijen en kolommen tegelijk, definieert u beide scheidingstekens in uw formule TEXTSPLIT.

    Om bijvoorbeeld de tekststring in A2 te splitsen over kolommen en rijen, geven we:

    • Het gelijkheidsteken ("=") voor col_delimiter
    • Een komma en een spatie (", ") voor rij_scheidingsteken

    De volledige formule heeft deze vorm:

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

    Het resultaat is een 2-D matrix bestaande uit 2 kolommen en 3 rijen:

    Cellen scheiden door meerdere scheidingstekens

    Om meerdere of inconsistente scheidingstekens in de bronstring te verwerken, gebruik je een arrayconstante als {"x","y","z"} voor het scheidingsteken-argument.

    In het onderstaande screenshot wordt de tekst in A2 gescheiden door zowel komma's (",") als puntkomma's (";") met en zonder spaties. Om de string verticaal in rijen te splitsen door alle 4 variaties van het scheidingsteken, is de formule:

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

    Of u kunt alleen een komma (",") en puntkomma (";") in de matrix opnemen, en dan extra spaties verwijderen met behulp van de TRIM-functie:

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

    Tekst splitsen waarbij lege waarden worden genegeerd

    Als de string twee of meer opeenvolgende scheidingstekens bevat zonder een waarde ertussen, kunt u kiezen of dergelijke lege waarden al dan niet worden genegeerd. Dit gedrag wordt bepaald door de vierde negeer_leeg parameter, die standaard op FALSE staat.

    De TEXTSPLIT-functie negeert standaard geen lege waarden. Het standaardgedrag werkt goed voor gestructureerde gegevens zoals in het onderstaande voorbeeld.

    In deze voorbeeldtabel ontbreken de scores in sommige strings. De TEXTSPLIT-formule met de negeer_leeg weggelaten of op FALSE ingesteld, kan dit geval perfect worden afgehandeld, waarbij voor elke lege waarde een lege cel wordt aangemaakt.

    =TEXTSPLIT(A2, ", ")

    Of

    =TEXTSPLIT(A2, ", ", FALSE)

    Daardoor verschijnen alle waarden in de juiste kolommen.

    Als uw strings homogene gegevens bevatten, kan het voor de hand liggen om lege waarden te negeren. Stel hiervoor de negeer_leeg argument op TRUE of 1.

    Bijvoorbeeld, om t de onderstaande reeksen te verdelen en elke vaardigheid in een aparte cel te plaatsen zonder openingen, is de formule:

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

    In dit geval worden de ontbrekende waarden tussen opeenvolgende scheidingstekens volledig genegeerd:

    Celsplitsing hoofdlettergevoelig of hoofdletterongevoelig

    Gebruik het vijfde argument om de hoofdlettergevoeligheid van het scheidingsteken te regelen, match_mode .

    Standaard, match_mode wordt op 0 gezet, waardoor TEXTSPLIT hoofdlettergevoelig .

    In dit voorbeeld worden de getallen gescheiden door de kleine letter "x" en de hoofdletter "X".

    De formule met de standaard hoofdlettergevoeligheid accepteert alleen de kleine letter "x" als scheidingsteken:

    =TEXTSPLIT(A2, " x ")

    Let erop dat het scheidingsteken aan weerszijden van de letter " x " een spatie bevat om te voorkomen dat er voorloop- en achterspaties in de resultaten komen.

    Om de hoofdlettergevoeligheid uit te schakelen, geeft u 1 op voor match_mode om de TEXTSPLIT-formule te dwingen de hoofdletters te negeren:

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

    Nu worden alle strings correct gesplitst door een van beide scheidingstekens:

    Opvullen van ontbrekende waarden in 2D array

    Het laatste argument van de functie TEXTSPLIT, pad_met Wanneer een dergelijke string is opgedeeld in zowel kolommen als rijen, retourneert Excel standaard #N/A fouten in plaats van de ontbrekende waarden om de structuur van een tweedimensionale array niet te verstoren.

    In de onderstaande string staat geen "=" ( col_delimiter ) na "Score". Om de integriteit van de resulterende matrix te bewaren, geeft TEXTSPLIT #N/A weer naast "Score".

    Om het resultaat gebruiksvriendelijker te maken, kunt u de fout #N/A vervangen door elke gewenste waarde. Typ gewoon de gewenste waarde in de pad_met argument.

    In ons geval zou dat een koppelteken ("-") kunnen zijn:

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

    Of een lege tekenreeks (""):

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

    Nu u praktische toepassingen van elk argument van de functie TEXTSPLIT hebt geleerd, laten we een paar geavanceerde voorbeelden bespreken die u kunnen helpen bij niet-triviale uitdagingen in uw Excel-spreadsheets.

    Splits data in dag, maand en jaar

    Om een datum op te delen in afzonderlijke eenheden, moet u eerst de datum omzetten in tekst, omdat de functie TEXTSPLIT tekststrings behandelt terwijl Excel-datums getallen zijn.

    De eenvoudigste manier om een numerieke waarde om te zetten in tekst is door gebruik te maken van de TEKST-functie. Zorg ervoor dat u een geschikte formaatcode voor uw datum opgeeft.

    In ons geval is de formule:

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

    De volgende stap is om de bovenstaande functie in het 1e argument van TEXTSPLIT te nestelen en het bijbehorende scheidingsteken in te voeren voor het 2e of 3e argument, afhankelijk van of je over kolommen of rijen splitst. In dit voorbeeld worden de datumeenheden gescheiden door schuine strepen, dus gebruiken we "/" voor de col_delimiter argument:

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

    Cellen splitsen en bepaalde tekens verwijderen

    Stel je dit voor: je hebt een lange string in stukken gesplitst, maar de resulterende array bevat nog steeds enkele ongewenste tekens, zoals de haakjes in de schermafbeelding hieronder:

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

    Om de openende en sluitende haakjes in één keer te verwijderen, nestelt u twee SUBSTITUTE-functies in elkaar (waarbij telkens één haakje wordt vervangen door een lege tekenreeks) en gebruikt u de formule TEXTSPLIT voor de tekst argument van de binnenste SUBSTITUTE:

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

    Tip. Als de uiteindelijke matrix te veel extra tekens bevat, kunt u deze verwijderen met een van de methoden die worden beschreven in dit artikel: Hoe ongewenste tekens verwijderen in Excel.

    Tekenreeksen splitsen waarbij bepaalde waarden worden overgeslagen

    Stel dat u de onderstaande strings wilt scheiden in 4 kolommen: Voornaam , Achternaam , Score en Resultaat Het probleem is dat sommige strings de titel "meneer" of "mevrouw" bevatten, waardoor de resultaten helemaal verkeerd zijn:

    De oplossing ligt niet voor de hand, maar is heel eenvoudig :)

    Naast de bestaande scheidingstekens, die bestaan uit een spatie (" ") en een komma en een spatie (", "), neemt u de strings "Mr. " en "Ms. " op in de col_delimiter array constant, zodat de functie de titels zelf gebruikt om de tekst te scheiden. Om lege waarden te negeren, stel je de negeer_leeg argument naar TRUE.

    =TEXTSPLIT(A2, {" ",", ","Mr.","Ms."}, ,TRUE)

    Nu zijn de resultaten absoluut perfect!

    TEXTSPLIT alternatieven

    In Excel-versies waar de functie TEXTSPLIT niet wordt ondersteund, kunt u strings splitsen door verschillende combinaties van de functie ZOEKEN / VINDEN te gebruiken met LINKS, RECHTS en MIDDEN. In het bijzonder:

    • Hoofdlettergevoelig SEARCH of hoofdlettergevoelig FIND bepaalt de positie van het scheidingsteken binnen een tekenreeks, en
    • De functies LINKS, RECHTS en MID halen een substring voor, na of tussen twee instanties van het scheidingsteken.

    In ons geval, om de waarden gescheiden door een komma en een spatie gaan de formules als volgt.

    Om de naam eruit te halen:

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

    Om de score te trekken:

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

    Om het resultaat te krijgen:

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

    Voor een gedetailleerde uitleg van de logica van de formules, zie Hoe tekenreeksen te splitsen op teken of masker.

    Houd er rekening mee dat deze formules, in tegenstelling tot de functie TEXTSPLIT van de dynamische matrix, de traditionele één-formule-één-cel-aanpak volgen. U voert de formule in de eerste cel in, en sleept deze dan naar beneden in de kolom om naar de volgende cellen te kopiëren.

    Het onderstaande screenshot toont de resultaten:

    Dat is hoe u cellen in Excel 365 kunt splitsen met behulp van TEXTSPLIT of alternatieve oplossingen in eerdere versies. Ik dank u voor het lezen en hoop u volgende week op onze blog te zien!

    Praktijk werkboek om te downloaden

    TEXTSPLIT functie om strings te splitsen - formulevoorbeelden (.xlsx bestand)

    Michael Brown is een toegewijde technologieliefhebber met een passie voor het vereenvoudigen van complexe processen met behulp van softwaretools. Met meer dan tien jaar ervaring in de technische industrie heeft hij zijn vaardigheden in Microsoft Excel en Outlook, evenals Google Spreadsheets en Documenten aangescherpt. Michael's blog is gewijd aan het delen van zijn kennis en expertise met anderen, met eenvoudig te volgen tips en tutorials voor het verbeteren van de productiviteit en efficiëntie. Of je nu een doorgewinterde professional of een beginner bent, Michaels blog biedt waardevolle inzichten en praktisch advies om het meeste uit deze essentiële softwaretools te halen.