Excel: Dela strängar med avgränsare eller mönster, separera text och siffror

  • Dela Detta
Michael Brown

I handledningen förklaras hur du delar celler i Excel med hjälp av formler och funktionen Split Text. Du lär dig hur du separerar text med kommatecken, mellanslag eller någon annan avgränsare och hur du delar upp strängar i text och siffror. .

Att dela upp text från en cell till flera celler är en uppgift som alla Excel-användare har att göra med då och då. I en av våra tidigare artiklar diskuterade vi hur man delar upp celler i Excel med hjälp av Text till kolumn funktion och Flash Fill . Idag ska vi ta en djupgående titt på hur du kan dela upp strängar med hjälp av formler och Split text verktyg.

    Hur du delar text i Excel med hjälp av formler

    För att dela upp strängar i Excel använder du vanligen funktionerna LEFT, RIGHT eller MID i kombination med FIND eller SEARCH. Vid första anblicken kan vissa av formlerna se komplicerade ut, men logiken är i själva verket ganska enkel, och följande exempel ger dig några ledtrådar.

    Dela strängen med kommatecken, semikolon, snedstreck, streck eller andra avgränsare.

    När du delar upp celler i Excel är det viktigt att hitta avgränsarens position i textsträngen. Beroende på din uppgift kan detta göras med hjälp av antingen SEARCH (sökning utan hänsyn till stor bokstav) eller FIND (sökning med hänsyn till stor bokstav). När du har fått reda på avgränsarens position använder du funktionen RIGHT (höger), LEFT (vänster) eller MID (mitten) för att extrahera motsvarande del av textsträngen. För att få en bättre förståelse, låt oss tänka på följandeexempel.

    Om vi antar att du har en lista med SKU:er för Artikel-färg-storlek och du vill dela upp kolumnen i tre separata kolumner:

    1. För att extrahera artikelnamn (alla tecken före det första bindestrecket), infoga följande formel i B2 och kopiera den sedan nedåt i kolumnen:

      =VÄNSTER(A2, SEARCH("-",A2,1)-1)

      I den här formeln bestämmer SEARCH positionen för det första bindestrecket ("-") i strängen, och funktionen LEFT extraherar alla tecken till vänster om det (du subtraherar 1 från bindestreckets position eftersom du inte vill extrahera själva bindestrecket).

    2. För att extrahera färg (alla tecken mellan första och andra bindestrecket), skriv in följande formel i C2 och kopiera den sedan till andra celler:

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

      I den här formeln använder vi Excel MID-funktionen för att extrahera text från A2.

      Startpositionen och antalet tecken som ska extraheras beräknas med hjälp av fyra olika sökfunktioner:

      • Startnummer är positionen för det första bindestrecket +1:

        SEARCH("-",A2) + 1

      • Antal tecken som ska extraheras : Skillnaden mellan positionen för det andra bindestrecket och det första bindestrecket, minus 1:

        SEARCH("-", A2, SEARCH("-",A2)+1) - SEARCH("-",A2) -1

    3. För att extrahera storlek (alla tecken efter det tredje bindestrecket), ange följande formel i D2:

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

      I den här formeln returnerar LEN-funktionen strängens totala längd, från vilken du subtraherar positionen för det andra bindestrecket. Skillnaden är antalet tecken efter det andra bindestrecket, och RIGHT-funktionen extraherar dem.

    På samma sätt kan du dela upp kolumnen med något annat tecken. Allt du behöver göra är att ersätta "-" med den önskade avgränsaren, t.ex. utrymme (" "), kommatecken (","), snedstreck ("/"), tjocktarm (";"), semikolon (";") och så vidare.

    Tips: I formlerna ovan motsvarar +1 och -1 antalet tecken i avgränsaren. I det här exemplet är det ett bindestreck (1 tecken). Om din avgränsare består av två tecken, t.ex. ett kommatecken och ett mellanslag, anger du bara kommatecknet (",") till funktionen SÖKNING och använder +2 och -2 i stället för +1 och -1.

    Hur man delar strängar med radbrytning i Excel

    Om du vill dela upp text genom mellanslag använder du formler som liknar dem som visades i föregående exempel. Den enda skillnaden är att du behöver funktionen CHAR för att ange radbrytningstecknet eftersom du inte kan skriva det direkt i formeln.

    Antag att cellerna som du vill dela upp ser ut så här:

    Ta formlerna från föregående exempel och ersätt bindestreck ("-") med CHAR(10) där 10 är ASCII-koden för radmatning.

    • För att extrahera artikelnamn :

      =VÄNSTER(A2, SEARCH(CHAR(10),A2,1)-1)

    • För att extrahera färg :

      =MID(A2, SEARCH(CHAR(10),A2) + 1, SEARCH(CHAR(10),A2,SEARCH(CHAR(10),A2)+1) - SEARCH(CHAR(10),A2) - 1)

    • För att extrahera storlek :

      =RIGHT(A2,LEN(A2) - SEARCH(CHAR(10), A2, SEARCH(CHAR(10), A2) + 1))

    Och så här ser resultatet ut:

    Hur du delar upp text och siffror i Excel

    Till att börja med finns det ingen universallösning som skulle fungera för alla alfanumeriska strängar. Vilken formel som ska användas beror på det särskilda strängmönstret. Nedan hittar du formlerna för de två vanligaste scenarierna.

    Splitta sträng av mönstret "text + nummer".

    Anta att du har en kolumn med strängar med kombinerad text och siffror, där en siffra alltid följer efter texten. Du vill bryta upp de ursprungliga strängarna så att texten och siffrorna visas i separata celler, så här:

    Resultatet kan uppnås på två olika sätt.

    Metod 1: Räkna siffror och extrahera så många tecken.

    Det enklaste sättet att dela upp en textsträng där numret kommer efter texten är följande:

    Till utdragsnummer. Du söker i strängen efter varje möjligt nummer från 0 till 9, får fram summan av numren och returnerar så många tecken från strängens slut.

    Med den ursprungliga strängen i A2, går formeln som följer:

    =RIGHT(A2,SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"},""))))

    Till extrahera text beräknar du hur många texttecken strängen innehåller genom att subtrahera antalet extraherade siffror (C2) från den ursprungliga strängens totala längd i A2. Därefter använder du funktionen LEFT för att returnera det antal tecken från strängens början.

    = VÄNSTER(A2,LEN(A2)-LEN(C2))

    Där A2 är den ursprungliga strängen och C2 är det extraherade numret, vilket visas i skärmbilden:

    Metod 2: Ta reda på positionen för den första siffran i en sträng.

    En alternativ lösning är att använda följande formel för att bestämma positionen för den första siffran i strängen:

    =MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))

    När du har hittat den första siffrans position kan du dela upp text och siffror med hjälp av mycket enkla formler för vänster och höger.

    För att extrahera text :

    =VÄNSTER(A2, B2-1)

    För att extrahera nummer :

    =RIGHT(A2, LEN(A2)-B2+1)

    Där A2 är den ursprungliga strängen och B2 är positionen för det första numret.

    Om du vill bli av med hjälpkolumnen som håller fast positionen för den första siffran kan du bädda in MIN-formeln i funktionerna LEFT och RIGHT:

    Formel för att extrahera text :

    =LEFT(A2,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)

    Formel för att extrahera nummer :

    =RIGHT(A2,LEN(A2)-MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1)

    Splitta sträng av mönstret "nummer + text".

    Om du delar upp celler där text visas efter ett nummer kan du utdragsnummer. med följande formel:

    = VÄNSTER(A2, SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}, ""))))

    Formeln liknar den som diskuterades i föregående exempel, förutom att du använder funktionen LEFT i stället för RIGHT för att få fram talet från strängens vänstra sida.

    När du har siffrorna, utdrag text genom att subtrahera antalet siffror från den ursprungliga strängens totala längd:

    =RIGHT(A2,LEN(A2)-LEN(B2))

    Där A2 är den ursprungliga strängen och B2 är det extraherade numret, vilket visas i skärmbilden nedan:

    Tips. För att få ett nummer från vilken position som helst i textsträngen , använd antingen den här formeln eller extraktionsverktyget.

    Så här kan du dela upp strängar i Excel med hjälp av olika kombinationer av olika funktioner. Som du ser är formlerna långt ifrån uppenbara, så du kanske vill ladda ner arbetsboken Excel Split Cells för att undersöka dem närmare.

    Om det inte är din favorit att räkna ut Excel-formlerna, kanske du gillar den visuella metoden för att dela celler i Excel, som demonstreras i nästa del av den här handledningen.

    Hur du delar celler i Excel med verktyget Split Text

    Ett alternativt sätt att dela en kolumn i Excel är att använda funktionen Split Text som ingår i vår Ultimate Suite for Excel och som ger dig följande alternativ:

      För att göra saker och ting tydligare ska vi titta närmare på varje alternativ, ett i taget.

      Dela celler efter tecken

      Välj det här alternativet när du vill dela upp cellinnehållet vid varje förekomst av det angivna tecknet .

      I det här exemplet tar vi strängarna i Artikel-färg-storlek mönstret som vi använde i den första delen av den här handledningen. Som du kanske minns separerade vi dem i tre olika kolumner med hjälp av tre olika formler. Här är hur du kan uppnå samma resultat i två snabba steg:

      1. Om du har installerat Ultimate Suite, välj de celler som ska delas och klicka på knappen Split text på den Uppgifter om Ablebits fliken.

      2. Split text öppnas till höger i Excel-fönstret och du gör följande:
        • Utöka Uppdelning efter tecken och välj en av de fördefinierade avgränsarna eller skriv något annat tecken i fältet Anpassad box.
        • Välj om du vill dela upp cellerna i kolumner eller rader.
        • Granska resultatet under Förhandsgranska och klickar på Split knapp.

      Tips: Om det kan finnas flera på varandra följande avgränsare i en cell (t.ex. mer än ett mellanslagstecken) väljer du Behandla på varandra följande avgränsare som en box.

      Det som tidigare krävde tre formler och fem olika funktioner tar nu bara några sekunder och ett knapptryck.

      Dela celler med sträng

      Med det här alternativet kan du dela upp strängar med hjälp av valfri kombination av tecken Tekniskt sett delar du upp en sträng i delar genom att använda en eller flera olika delsträngar som gränser för varje del.

      Om du till exempel vill dela upp en mening med hjälp av konjunktionerna " och " och " eller . ", utvidga Uppdelad i strängar och ange avgränsningssträngarna, en per rad:

      Resultatet är att källfrasen separeras vid varje förekomst av varje avgränsare:

      Tips: Tecknen "eller" och "och" kan ofta ingå i ord som "apelsin" eller "Andalusien", så var noga med att skriva ett utrymme före och efter och och eller . för att förhindra att ord delas upp.

      Här är ett annat exempel från verkligheten: Antag att du har importerat en kolumn med datum från en extern källa som ser ut på följande sätt:

      5.1.2016 12:20

      5.2.2016 14:50

      Detta format är inte konventionellt för Excel, och därför skulle ingen av datumfunktionerna känna igen någon av datum- eller tidselementen. För att dela upp dag, månad, år, timmar och minuter i separata celler anger du följande tecken i fältet Uppdelad i strängar box:

      • Punkt (.) för att separera dag, månad och år
      • kolon (:) för att separera timmar och minuter
      • Utrymme för att separera datum och tid

      Tryck på Split knappen, och du får omedelbart resultatet:

      Dela upp celler efter mask (mönster)

      Att separera en cell med en mask innebär att dela upp en sträng. baserat på ett mönster .

      Det här alternativet är mycket praktiskt när du behöver dela upp en lista med homogena strängar i vissa element, eller delsträngar. Komplikationen är att källtexten inte kan delas upp vid varje förekomst av en viss avgränsare, utan bara vid vissa specifika förekomster. Följande exempel gör det lättare att förstå.

      Antag att du har en lista med strängar som har hämtats från en loggfil:

      Du vill ha datum och tid, i förekommande fall, felkod och undantagsuppgifter i tre separata kolumner. Du kan inte använda ett mellanslag som avgränsare eftersom det finns mellanslag mellan datum och tid, som ska visas i en kolumn, och det finns mellanslag i undantagstexten, som också ska visas i en kolumn.

      Lösningen är att dela en sträng med följande mask: *ERROR:*Exception:*

      Asterisken (*) står för ett valfritt antal tecken.

      Kolonerna (:) ingår i avgränsarna eftersom vi inte vill att de ska finnas med i de resulterande cellerna.

      Och nu kan du utöka Uppdelad efter mask på avsnittet om Split text och skriver masken i rutan Ange avgränsare och klickar på Split :

      Resultatet kommer att se ut ungefär så här:

      Observera att delning av strängar med mask är Skiftlägeskänslig Se därför till att tecknen i masken skrivs exakt så som de visas i källsträngarna.

      En stor fördel med den här metoden är flexibiliteten. Om till exempel alla ursprungliga strängar har datum- och tidsvärden och du vill att de ska visas i olika kolumner kan du använda den här masken:

      * *ERROR:*Exception:*

      Översatt till vanlig engelska instruerar masken tilläggsmodulen att dela upp de ursprungliga strängarna i fyra delar:

      • Alla tecken före det 1:a mellanslag som finns i strängen (datum)
      • Tecken mellan det första mellanslaget och ordet FEL: (tid)
      • Text mellan FEL: och Undantag: (felkod)
      • Allt som kommer efter Undantag: (undantagstext)

      Jag hoppas att du gillade detta snabba och enkla sätt att dela upp strängar i Excel. Om du är nyfiken på att prova det finns en utvärderingsversion att ladda ner nedan. Tack för att du läste och hoppas att vi ses på vår blogg nästa vecka!

      Tillgängliga nedladdningar

      Excel-formler för delade celler (.xlsx-fil)

      Ultimate Suite 14-dagars fullt fungerande version (.exe-fil)

      Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.