Inhoudsopgave
In deze tutorial wordt uitgelegd hoe u cellen in Excel kunt splitsen met behulp van formules en de functie Tekst splitsen. U leert hoe u tekst kunt scheiden met een komma, spatie of een ander scheidingsteken en hoe u tekenreeksen kunt splitsen in tekst en getallen. .
Tekst uit een cel splitsen in meerdere cellen is de taak waar alle Excel-gebruikers wel eens mee te maken krijgen. In een van onze eerdere artikelen hebben we besproken hoe u cellen in Excel kunt splitsen met behulp van het Tekst naar kolom functie en Flitsvulling Vandaag gaan we diepgaand bekijken hoe je strings kunt splitsen met behulp van formules en het Gesplitste tekst gereedschap.
Tekst splitsen in Excel met behulp van formules
Om strings in Excel te splitsen, gebruikt u meestal de LINKS-, RECHTS- of MIDDEN-functie in combinatie met VINDEN of ZOEKEN. Op het eerste gezicht lijken sommige formules ingewikkeld, maar de logica is in feite vrij eenvoudig, en de volgende voorbeelden geven u enkele aanwijzingen.
Tekenreeks splitsen door komma, puntkomma, schuine streep, streepje of ander scheidingsteken
Bij het splitsen van cellen in Excel gaat het erom de positie van het scheidingsteken binnen de tekststring te vinden. Afhankelijk van uw taak kan dit worden gedaan met behulp van hoofdletterongevoelig ZOEKEN of hoofdlettergevoelig ZOEKEN. Zodra u de positie van het scheidingsteken hebt, gebruikt u de functie RECHTS, LINKS of MIDDEN om het overeenkomstige deel van de tekststring te extraheren. Laten we voor een beter begrip het volgende bekijkenvoorbeeld.
Stel dat u een lijst hebt met SKU's van de Item-Kleur-Maat patroon, en u wilt de kolom opsplitsen in 3 afzonderlijke kolommen:
- Om de artikelnaam (alle tekens vóór het eerste streepje), voeg de volgende formule in B2 in, en kopieer deze vervolgens naar beneden in de kolom:
=LEFT(A2, SEARCH("-",A2,1)-1)
In deze formule bepaalt SEARCH de positie van het eerste koppelteken ("-") in de tekenreeks, en de functie LEFT haalt alle tekens links daarvan op (u trekt 1 af van de positie van het koppelteken omdat u het koppelteken zelf niet wilt opnemen).
- Om de kleur (alle tekens tussen het 1e en 2e streepje), voer de volgende formule in C2 in, en kopieer deze vervolgens naar andere cellen:
=MID(A2, SEARCH("-",A2) + 1, SEARCH("-",A2,SEARCH("-",A2)+1) - SEARCH("-",A2) - 1)
In deze formule gebruiken we de Excel MID-functie om tekst uit A2 te halen.
De startpositie en het aantal te extraheren karakters worden berekend met behulp van 4 verschillende SEARCH-functies:
- Startnummer is de positie van het eerste koppelteken +1:
ZOEK("-",A2) + 1
- Aantal te extraheren karakters : het verschil tussen de positie van het 2e streepje en het 1e streepje, min 1:
ZOEK("-", A2, ZOEK("-",A2)+1) - ZOEK("-",A2) -1
- Startnummer is de positie van het eerste koppelteken +1:
- Om de maat (alle tekens na het 3e koppelteken), voer de volgende formule in D2 in:
=RIGHT(A2,LEN(A2) - SEARCH("-", A2, SEARCH("-", A2) + 1))
In deze formule geeft de functie LEN de totale lengte van de tekenreeks, waarvan u de positie van het 2e koppelteken aftrekt. Het verschil is het aantal tekens na het 2e koppelteken, en de functie RECHTS haalt ze eruit.
Op dezelfde manier kunt u kolommen splitsen door elk ander teken. U hoeft alleen maar "-" te vervangen door het gewenste scheidingsteken, bijvoorbeeld ruimte (" "), komma (","), slash ("/"), dikke darm (";"), puntkomma (";"), enzovoort.
Tip: in de bovenstaande formules komen +1 en -1 overeen met het aantal tekens in het scheidingsteken. In dit voorbeeld is dat een koppelteken (1 teken). Indien uw scheidingsteken uit 2 tekens bestaat, bijvoorbeeld een komma en een spatie, geef dan alleen de komma (",") mee aan de ZOEK-functie, en gebruik +2 en -2 in plaats van +1 en -1.
Hoe een string te splitsen door een regeleinde in Excel
Om tekst door spaties te splitsen, gebruikt u formules die lijken op die in het vorige voorbeeld. Het enige verschil is dat u de CHAR-functie nodig hebt om het regeleinde-teken te leveren, omdat u het niet rechtstreeks in de formule kunt typen.
Stel, de cellen die u wilt splitsen zien er ongeveer zo uit:
Neem de formules uit het vorige voorbeeld en vervang een koppelteken ("-") door CHAR(10) waarbij 10 de ASCII-code is voor Line feed.
- Om de artikelnaam :
=LEFT(A2, SEARCH(CHAR(10),A2,1)-1)
- Om de kleur :
=MID(A2, SEARCH(CHAR(10),A2) + 1, SEARCH(CHAR(10),A2,SEARCH(CHAR(10),A2)+1) - SEARCH(CHAR(10),A2) - 1)
- Om de maat :
=RIGHT(A2,LEN(A2) - SEARCH(CHAR(10), A2, SEARCH(CHAR(10), A2) + 1))
En zo ziet het resultaat eruit:
Tekst en getallen splitsen in Excel
Om te beginnen is er geen universele oplossing die werkt voor alle alfanumerieke strings. Welke formule u moet gebruiken hangt af van het specifieke stringpatroon. Hieronder vindt u de formules voor de twee gebruikelijke scenario's.
Splits string van 'tekst + nummer' patroon
Stel, u hebt een kolom strings met tekst en getallen gecombineerd, waarbij een getal altijd volgt op tekst. U wilt de oorspronkelijke strings breken zodat de tekst en de getallen in afzonderlijke cellen verschijnen, zoals dit:
Het resultaat kan op twee verschillende manieren worden bereikt.
Methode 1: Cijfers tellen en zoveel karakters eruit halen
De eenvoudigste manier om een tekststring te splitsen waarbij een getal achter de tekst komt is deze:
Naar extractnummers zoek je in de tekenreeks naar elk mogelijk getal van 0 tot 9, haal je het totaal aantal getallen op, en stuur je zoveel tekens terug vanaf het einde van de tekenreeks.
Met de oorspronkelijke string in A2 gaat de formule als volgt:
=RIGHT(A2,SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"},""))))
Naar tekst uitpakken bereken je hoeveel teksttekens de tekenreeks bevat door het aantal geëxtraheerde cijfers (C2) af te trekken van de totale lengte van de oorspronkelijke tekenreeks in A2. Daarna gebruik je de functie LINKS om dat aantal tekens vanaf het begin van de tekenreeks terug te geven.
=LEFT(A2,LEN(A2)-LEN(C2))
Waarbij A2 de oorspronkelijke string is, en C2 het geëxtraheerde nummer, zoals in de schermafbeelding:
Methode 2: De positie van het eerste cijfer in een tekenreeks bepalen
Een alternatieve oplossing is het gebruik van de volgende formule om de positie van het eerste cijfer in de tekenreeks te bepalen:
=MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))
Zodra de positie van het eerste cijfer is gevonden, kunt u tekst en getallen splitsen met behulp van zeer eenvoudige LINKS- en RECHTSformules.
Om te extraheren tekst :
=LEFT(A2, B2-1)
Om te extraheren nummer :
=RIGHT(A2, LEN(A2)-B2+1)
Waarbij A2 de oorspronkelijke string is, en B2 de positie van het eerste getal.
Om af te komen van de hulpkolom die de positie van het eerste cijfer vasthoudt, kunt u de MIN-formule opnemen in de functies LINKS en RECHTS:
Formule om te onttrekken tekst :
=LEFT(A2,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)
Formule om te onttrekken nummers :
=RIGHT(A2,LEN(A2)-MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1)
Splits string van 'nummer + tekst' patroon
Als u cellen splitst waar tekst na een nummer staat, kunt u extractnummers met de volgende formule:
=LEFT(A2, SOM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"}, ""))))".
De formule is vergelijkbaar met die in het vorige voorbeeld, behalve dat u de functie LINKS gebruikt in plaats van RECHTS om het getal aan de linkerkant van de tekenreeks te krijgen.
Als je eenmaal de nummers hebt, extract tekst door het aantal cijfers af te trekken van de totale lengte van de oorspronkelijke string:
=RIGHT(A2,LEN(A2)-LEN(B2))
Waarbij A2 de oorspronkelijke string is en B2 het geëxtraheerde nummer, zoals in onderstaande schermafbeelding:
Tip. Om een nummer te krijgen van elke positie in de tekststring gebruik dan deze formule of het Extract-gereedschap.
Dit is hoe u in Excel tekenreeksen kunt splitsen met verschillende combinaties van verschillende functies. Zoals u ziet, zijn de formules verre van duidelijk, dus u kunt de voorbeeldwerkmap Excel Split Cells downloaden om ze nader te bestuderen.
Als het uitpluizen van de geheimzinnige kronkels van Excel-formules niet uw favoriete bezigheid is, houdt u wellicht van de visuele methode om cellen in Excel te splitsen, die in het volgende deel van deze handleiding wordt gedemonstreerd.
Hoe cellen splitsen in Excel met de Split Text tool
Een alternatieve manier om een kolom in Excel te splitsen is met behulp van de functie Tekst splitsen die is opgenomen in onze Ultimate Suite voor Excel:
Om de zaken te verduidelijken, bekijken we elke optie een voor een.
Cellen splitsen per karakter
Kies deze optie wanneer u de celinhoud wilt splitsen op elk voorkomen van het gespecificeerde teken .
Voor dit voorbeeld nemen we de strings van de Item-Kleur-Maat patroon dat we in het eerste deel van deze tutorial hebben gebruikt. Zoals u zich wellicht herinnert, hebben we ze gescheiden in 3 verschillende kolommen met behulp van 3 verschillende formules. En hier ziet u hoe u hetzelfde resultaat kunt bereiken in 2 snelle stappen:
- Aangenomen dat u Ultimate Suite geïnstalleerd hebt, selecteer de cellen die u wilt splitsen, en klik op de knop Gesplitste tekst pictogram op de Ablebits gegevens tab.
- De Gesplitste tekst deelvenster wordt geopend aan de rechterkant van uw Excel-venster, en u doet het volgende:
- Breid de Gesplitst per karakter groep, en selecteer een van de vooraf gedefinieerde scheidingstekens of typ een ander karakter in het Aangepaste doos.
- Kies of u de cellen wilt splitsen in kolommen of rijen.
- Bekijk het resultaat onder de Voorbeeld sectie, en klik op de Gesplitst knop.
Tip. Als er meerdere opeenvolgende scheidingstekens in een cel kunnen voorkomen (bijvoorbeeld meer dan één spatie), selecteer dan de optie Opeenvolgende scheidingstekens als één behandelen doos.
Klaar! De taak die 3 formules en 5 verschillende functies vereiste, kost nu slechts een paar seconden en een klik op een knop.
Cellen splitsen op tekenreeks
Met deze optie kunt u strings splitsen met behulp van elke combinatie van tekens Technisch gezien splitst u een string in delen door een of meer verschillende substrings te gebruiken als begrenzing van elk deel.
Bijvoorbeeld, om een zin te splitsen door de voegwoorden " en " en " of ", breid de Gesplitst door snaren groep, en voer de scheidingstekens in, één per regel:
Bijgevolg wordt de bronzin gescheiden bij elk voorkomen van elk scheidingsteken:
Tip. De tekens "of" en "en" kunnen vaak deel uitmaken van woorden als "sinaasappel" of "Andalusië", dus zorg ervoor dat u een ruimte voor en na en en of om het splitsen van woorden te voorkomen.
En hier nog een voorbeeld uit de praktijk. Stel dat u een kolom met datums hebt geïmporteerd uit een externe bron, die er als volgt uitzien:
5.1.2016 12:20
5.2.2016 14:50
Dit formaat is niet gebruikelijk voor Excel, en daarom zou geen van de Datum functies de datum of tijd elementen herkennen. Om dag, maand, jaar, uren en minuten te splitsen in aparte cellen, voert u de volgende karakters in de Gesplitst door snaren doos:
- Punt (.) om dag, maand en jaar te scheiden
- Dubbele punt (:) om uren en minuten te scheiden
- Ruimte om datum en tijd te scheiden
Druk op de Gesplitst knop, en je krijgt onmiddellijk het resultaat:
Cellen splitsen per masker (patroon)
Het scheiden van een cel door een masker betekent het splitsen van een string gebaseerd op een patroon .
Deze optie is erg handig wanneer u een lijst van homogene strings moet splitsen in een aantal elementen, of substrings. De complicatie is dat de brontekst niet bij elk voorkomen van een bepaald scheidingsteken kan worden gesplitst, maar alleen bij een of meer specifieke voorkomen(s). Het volgende voorbeeld maakt de dingen gemakkelijker te begrijpen.
Stel je hebt een lijst met strings uit een logbestand:
U wilt datum en tijd, indien van toepassing, foutcode en uitzonderingsgegevens in 3 afzonderlijke kolommen hebben. U kunt geen spatie gebruiken als scheidingsteken, want er zijn spaties tussen datum en tijd, die in één kolom moeten staan, en er zijn spaties binnen de uitzonderingstekst, die ook in één kolom moet staan.
De oplossing is het splitsen van een string door het volgende masker: *ERROR:*Exception:*
Waarbij het sterretje (*) staat voor een willekeurig aantal tekens.
De dubbele punten (:) zijn opgenomen in de scheidingstekens omdat we niet willen dat ze voorkomen in de resulterende cellen.
En nu, breid de Gesplitst per masker sectie op de Gesplitste tekst deelvenster, typ het masker in het Scheidingstekens invoeren en klik op Gesplitst :
Het resultaat ziet er ongeveer zo uit:
Opmerking. Het splitsen van string door masker is hoofdlettergevoelig Zorg er dus voor dat u de tekens in het masker precies zo invoert als in de bronreeksen.
Een groot voordeel van deze methode is de flexibiliteit. Als bijvoorbeeld alle oorspronkelijke strings datum- en tijdwaarden hebben, en u wilt ze in verschillende kolommen laten verschijnen, gebruik dan dit masker:
* *ERROR:*Exception:*
Vertaald in gewoon Engels, geeft het masker de add-in de opdracht de oorspronkelijke strings in 4 delen te verdelen:
- Alle tekens vóór de eerste spatie in de string (datum)
- Tekens tussen de 1e spatie en het woord FOUT: (tijd)
- Tekst tussen FOUT: en Uitzondering: (foutcode)
- Alles wat daarna komt Uitzondering: (uitzonderingstekst)
Ik hoop dat u deze snelle en eenvoudige manier om strings te splitsen in Excel leuk vond. Als u het zelf wilt proberen, kunt u hieronder een evaluatieversie downloaden. Ik dank u voor het lezen en hoop u volgende week op onze blog te zien!
Beschikbare downloads
Excel Split Cells formules (.xlsx bestand)
Ultimate Suite 14 dagen volledig functionele versie (.exe bestand)