Hoppa till huvudinnehåll

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

Författare: Xiaoyang Senast ändrad: 2023-06-08

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.


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:

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:

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:


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:

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


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:

Steg 1: Välj funktionen Dela data till rader

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

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.

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

 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.

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

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

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:

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.

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.

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

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:

 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:

 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.
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations