Hoppa till huvudinnehåll

Dela textsträngar med avgränsare i flera rader - 3 snabba knep

Författare: Xiaoyang Senast ändrad: 2024-11-26

Normalt kan du använda funktionen Text till kolumn för att dela upp cellinnehåll i flera kolumner med en specifik avgränsare, såsom kommatecken, punkt, semikolon, snedstreck, etc. Men ibland kan du behöva dela upp det avgränsade cellinnehållet i flera rader och upprepa data från andra kolumner enligt skärmbilden nedan. Har du några bra sätt att hantera denna uppgift i Excel? Denna handledning introducerar några effektiva metoder för att slutföra det här jobbet i Excel.

dela upp text i flera rader

Video: Dela textsträngar med avgränsare i flera rader

 


Metod A: Dela upp avgränsad text i flera rader med VBA-kod

I det här avsnittet kommer jag att introducera två VBA-koder för att hjälpa till att dela upp cellinnehållet som är separerat av en viss avgränsare.

Dela text separerad med komma, blanksteg, semikolon, etc.

För att dela upp textsträngarna som är åtskilda av någon normal avgränsare, såsom kommatecken, mellanslag, semikolon, snedstreck, etc., kan följande kod göra dig en tjänst. Följ stegen nedan:

 Anmärkningar: Denna kod inte stödja Ångra, bör du säkerhetskopiera data innan du använder den här koden.

Steg 1: Öppna VBA-modulredigeraren och kopiera koden

1. Aktivera det ark som du vill använda. Och tryck sedan Alt + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. Klicka på i det öppnade fönstret Insert > Modulerna för att skapa en ny tom modul.

3. Kopiera och klistra sedan in koden nedan i den tomma modulen.

VBA-kod: Dela text med specifik avgränsare (komma, punkt, mellanslag, etc.)

Sub SplitTextIntoRows()
'UpdatebyExtendoffice
    Dim xSRg, xIptRg, xCrRg, xRg As Range
    Dim xSplitChar As String
    Dim xArr As Variant
    Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
    Dim xWSh As Worksheet
    Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSplitChar = Application.InputBox("Type delimiter:", "Kutools for Excel", , , , , , 2)
    If xSplitChar = "" Then Exit Sub
    Application.ScreenUpdating = False
    xRow = xSRg.Row
    xColumn = xSRg.Column
    Set xWSh = xSRg.Worksheet
    For xFNum = xSRg.Rows.Count To 1 Step -1
        Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
        xArr = Split(xRg, xSplitChar)
        xIndex = UBound(xArr)
        For xFFNum = LBound(xArr) To UBound(xArr)
            xRg.EntireRow.Copy
            xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
            xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
            xIndex = xIndex - 1
        Next
        xRg.EntireRow.Delete
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub   

Steg 2: Kör koden för att få resultatet

1. När du har klistrat in koden trycker du på F5 nyckel för att köra den här koden. Sedan dyker en uppmaningsruta ut för att påminna dig om att välja cellerna som innehåller den avgränsade texten som du vill dela, se skärmdump:

vba-kod för att markera cellerna som innehåller den avgränsade texten

2. Klicka sedan på OK, visas en annan promptruta för att påminna dig om att skriva avgränsaren du vill dela upp data baserat på. Här skriver jag ett kommatecken och ett mellanslag (, ), se skärmdump:

vba-kod för att skriva en separator dela upp data baserat på

3. Klicka äntligen på OK knapp. Nu kommer du att se att de markerade textsträngarna är uppdelade i rader baserat på kommatecken och andra relativa kolumndata upprepas enligt nedanstående skärmdumpar:

de markerade textsträngarna delas upp i rader

Dela text separerad med radbrytning

Om ditt cellinnehåll är separerat av radbrytningar, för att dela upp dem i flera rader, här är en annan VBA-kod som kan hjälpa dig.

 Anmärkningar: Denna kod inte stödja Ångra Det är bättre att säkerhetskopiera data innan du använder den här koden.

Steg 1: Öppna VBA-modulredigeraren och kopiera koden

1. Tryck Alt + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. Klicka på i det öppnade fönstret Insert > Modulerna för att skapa en ny tom modul.

3. Kopiera och klistra sedan in koden nedan i den tomma modulen.

VBA-kod: Dela text efter radbrytning

Sub SplitTextIntoRows()
'UpdatebyExtendoffice
    Dim xSRg, xIptRg, xCrRg, xRg As Range
    Dim xSplitChar As String
    Dim xArr As Variant
    Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
    Dim xWSh As Worksheet
    Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSplitChar = Chr(10)
    Application.ScreenUpdating = False
    xRow = xSRg.Row
    xColumn = xSRg.Column
    Set xWSh = xSRg.Worksheet
    For xFNum = xSRg.Rows.Count To 1 Step -1
        Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
        xArr = Split(xRg, xSplitChar)
        xIndex = UBound(xArr)
        For xFFNum = LBound(xArr) To UBound(xArr)
            xRg.EntireRow.Copy
            xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
            xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
            xIndex = xIndex - 1
        Next
        xRg.EntireRow.Delete
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub 

Steg 2: Kör koden för att få resultatet

1. När du har klistrat in koden trycker du på F5 nyckel för att köra den här koden. I den utfällda rutan, välj de celler som du vill dela, se skärmdump:

vba-kod för att välja intervallet som ska delas

2. Klicka sedan på OK knappen delas data i de markerade cellerna upp i rader enligt nedanstående skärmbild:

data i de markerade cellerna delas upp i rader

Metod B: 10s för att dela avgränsad text i flera rader av Kutools för Excel

Om du har installerat Kutools för Excel, med dess Dela upp data till rader kan du dela upp textsträngarna i flera rader med vilken avgränsare du har angett. Vänligen gör med följande steg:

Kutools för Excel erbjuder över 300 avancerade funktioner för att effektivisera komplexa uppgifter, vilket ökar kreativiteten och effektiviteten. Förbättrad med AI-funktioner, Kutools automatiserar uppgifter med precision, vilket gör datahantering enkel. Detaljerad information om Kutools för Excel...         Gratis provperiod...

Steg 1: Välj funktionen Dela data till rader

Klicka Kutools > Slå ihop och dela > Dela upp data till rader, se skärmdump:

Klicka på Kutools > Sammanfoga och dela > Dela data till rader

Steg 2: Ange dataceller och avgränsare för delning

I den utfällda dialogrutan använder du följande alternativ:

  • 1). Välj listan över celler som du vill dela från Område (enkel kolumn) textruta;
  • 2). Välj sedan avgränsaren som separerar dina data, här väljer jag Övriga och skriv kommatecken och ett mellanslag (, ) i textrutan;
  • 3). Äntligen, klicka OK knapp.
Ange dataceller och avgränsare för delning i dialogrutan

Nu har de markerade cellerna med avgränsade textsträngar konverterats till flera rader baserat på den specifika avgränsaren, se skärmdump:

de markerade cellerna konverteras till flera rader

 tips: Om du vill återställa originaldata behöver du bara trycka Ctrl + Z för att ångra.

Lätt att använda? Intresserad av den här funktionen, tack klicka för att ladda ner för att få en gratis provperiod i 30 dagar.


Metod C: Dela upp avgränsad text i flera rader med Power Query

Om du kör Office 365 eller Excel 2016 och senare versioner, Power Query är ett kraftfullt verktyg som kan hjälpa dig att dela upp avgränsad text i flera rader eller kolumner. Det är användbart om du vill att de delade data ska uppdateras när dina ursprungliga data ändras. Gör följande för att avsluta det:

Steg 1: Få in datatabellen Power Query

1. Välj det dataintervall som du vill använda och klicka sedan Data > Från tabell, se skärmdump:

 tips: Klicka på i Excel 2019 och Office 365 Data > Från tabell/sortiment.

klicka på Data > Från tabell

2. I den poppade ut Skapa bord dialogrutan, klicka OK knappen för att skapa en tabell, se skärmdump:

klicka på OK-knappen för att skapa en tabell

3. Nu den Power Query redaktör fönstret visas med data, se skärmdump:

d Power Query Editorfönstret visas med data

Steg 2: Gör omvandlingarna i Power Query

1. Välj den kolumn som du vill dela upp. Och klicka sedan Hem > Dela kolumn > Med avgränsare, se skärmdump:

klicka på Hem > Dela kolumn > Efter avgränsare

2. I Dela kolumn med avgränsare dialog ruta:

Gör så här för att dela textsträngarna efter komma, mellanslag, semikolon, etc.:

  • 1). Välj avgränsaren dina data separerade med från Välj eller ange avgränsare rullgardinsmeny;
  • 2). Välj Varje förekomst av avgränsaren från Dela kl sektion;
  • 3). Klicka sedan Avancerade alternativ för att utöka avsnittet och välj rader under Delas upp i;
  • 4). Äntligen, klicka OK för att stänga denna dialogruta.
ange alternativen i dialogrutan för att dela texten med komma, mellanslag, semikolon, etc

För att dela upp textsträngar i flera rader genom länkbrytning, gör så här:

  • 1). Välja Custom från Välj eller ange avgränsare rullgardinsmeny;
  • 2). Från Infoga specialtecken rullgardinsmenyn, klicka Radmatning, och karaktärerna #(lf) kommer att infogas i textrutan under Custom automatiskt;
  • 3). Välj Varje förekomst av avgränsaren från avsnittet Dela vid;
  • 4). Klicka sedan Avancerade alternativ för att utöka avsnittet och välj rader under Delas upp i;
  • 5). Äntligen, klicka OK för att stänga denna dialogruta.
ange alternativen i dialogrutan för att dela texten efter radbrytning

3. Nu har den valda datan delats upp i flera rader enligt skärmbilden nedan:

den valda datan har delats upp i flera rader

Steg 3: Mata ut Power Query till en Excel-tabell

1. Och sedan bör du mata ut data till ditt kalkylblad. var god klicka Hem > Stäng och ladda > Stäng och ladda / Stäng & ladda till, (här kommer jag att klicka Stäng och ladda), se skärmdump:

klicka på Hem > Stäng och ladda för att ladda data

 tips: Klicka på Stäng och ladda kommer att mata ut data till ett nytt kalkylblad; Klick Stäng & ladda till alternativet, kommer data att matas ut till alla andra ark du behöver.

2. Slutligen kommer data att laddas till ett nytt arbetsblad, se skärmdump:

data laddas till ett nytt kalkylblad

 tips: Om du behöver uppdatera dina data i den ursprungliga tabellen ofta, oroa dig inte, du behöver bara högerklicka på resultattabellen och klicka refresh för att få det nya resultatet dynamiskt.


Relaterade artiklar:

  • Dela upp cellvärden i flera kolumner
  • I Excel, när du vill dela upp en lista med cellvärden i flera kolumner med vissa avgränsare, såsom kommatecken, mellanslag, punkt, nyrad, ect, normalt kan den inbyggda text till kolumner-funktionen hjälpa dig att slutföra det här jobbsteget för steg. Den här artikeln kommer jag att prata om några bra knep för dig att dela upp cellvärdena i flera kolumner eller rader enkelt och snabbt.
  • Dela en cell i flera rader eller kolumner
  • Om du antar att du har en enda cell som innehåller flera innehåll åtskilda av ett visst tecken, till exempel semikolon, och sedan vill du dela upp den här långa cellen i flera rader eller kolumner baserat på semikolon, i det här fallet har du några snabba sätt för att lösa det i Excel?
  • Dela textsträng för fall
  • I Excel delar vi vanligtvis text med fast bredd eller avgränsare med funktionen Text till kolumner, men har du någonsin försökt dela text med versaler och gemener? Till exempel har du en lista med data och du måste dela dem i två kolumner baserat på fallet: en kolumn innehåller små bokstäver och den andra innehåller stora bokstäver som visas nedan. Funktionen Text till kolumner stöder inte den här åtgärden, men jag kan introducera ett trick för att snabbt dela upp textsträng för fall i Excel.
  • Dela upp antalet i enskilda siffror
  • Om du antar att du måste bryta eller dela upp nummer i enskilda siffror enligt nedanstående skärmdump, vad kan du göra för att uppnå det? Den här artikeln ger dig två metoder.