Rozdělit textové řetězce oddělovačem do více řádků – 3 rychlé triky
Normálně můžete použít funkci Text to Column k rozdělení obsahu buňky do více sloupců pomocí určitého oddělovače, jako je čárka, tečka, středník, lomítko atd. Někdy však může být nutné rozdělit obsah buňky s oddělovači do více řádků a zopakujte data z dalších sloupců, jak je uvedeno níže. Máte nějaké dobré způsoby, jak se s tímto úkolem vypořádat v aplikaci Excel? Tento tutoriál představí některé efektivní metody k dokončení této úlohy v Excelu.
V této části představím dva kódy VBA, které pomohou rozdělit obsah buněk, které jsou odděleny určitým oddělovačem.
Chcete-li rozdělit textové řetězce, které jsou odděleny nějakým normálním oddělovačem, jako je čárka, mezera, středník, lomítko atd., může vám pomoci následující kód. Postupujte prosím podle následujících kroků:
Poznámka: Tento kód není podpora Zrušit, před použitím tohoto kódu si raději zálohujte data.
Krok 1: Otevřete editor modulu VBA a zkopírujte kód
1. Aktivujte list, který chcete použít. A pak stiskněte Alt + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.
2. V otevřeném okně klikněte na Vložit > Modul k vytvoření nového prázdného modulu.
3. Poté zkopírujte a vložte níže uvedený kód do prázdného modulu.
Kód VBA: Rozdělte text konkrétním oddělovačem (čárka, tečka, mezera atd.)
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
Krok 2: Spuštěním kódu získáte výsledek
1. Po vložení kódu stiskněte F5 klíč ke spuštění tohoto kódu. Poté se zobrazí okno s výzvou, které vám připomene, že jste vybrali buňky obsahující text s oddělovači, který chcete rozdělit, viz snímek obrazovky:
2. Poté klikněte na OK, objeví se další okno s výzvou, které vám připomene zadat oddělovač, podle kterého chcete data rozdělit. Zde napíšu čárku a mezeru (, ), viz snímek obrazovky:
3. Nakonec klikněte na OK knoflík. Nyní uvidíte, že vybrané textové řetězce jsou rozděleny do řádků na základě čárky a data ostatních relativních sloupců se opakují, jak je uvedeno níže:
Pokud je obsah vašich buněk oddělen zalomením řádků, chcete-li je rozdělit do více řádků, zde je další kód VBA, který vám může pomoci.
Poznámka: Tento kód není podpora Zrušit před použitím tohoto kódu si raději zálohujte data.
Krok 1: Otevřete editor modulu VBA a zkopírujte kód
1. lis Alt + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.
2. V otevřeném okně klikněte na Vložit > Modul k vytvoření nového prázdného modulu.
3. Poté zkopírujte a vložte níže uvedený kód do prázdného modulu.
Kód VBA: Rozdělte text zalomením řádku
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
Krok 2: Spuštěním kódu získáte výsledek
1. Po vložení kódu stiskněte F5 klíč ke spuštění tohoto kódu. Ve vyskakovacím poli vyberte buňky, které chcete rozdělit, viz snímek obrazovky:
2. Poté klikněte na OK tlačítko, data ve vybraných buňkách jsou rozdělena do řádků, jak je znázorněno na obrázku níže:
Pokud jste nainstalovali Kutools pro Excel, S jeho Rozdělit data do řádků můžete rozdělit textové řetězce do více řádků libovolným oddělovačem, který jste zadali. Proveďte prosím následující kroky:
Krok 1: Vyberte funkci Rozdělit data do řádků
klikněte Kutools > Sloučit a rozdělit > Rozdělit data do řádků, viz screenshot:
Krok 2: Zadejte datové buňky a oddělovač pro rozdělení
Ve vyskakovacím dialogovém okně použijte následující možnosti:
Nyní byly vybrané buňky s oddělenými textovými řetězci převedeny na více řádků na základě konkrétního oddělovače, viz snímek obrazovky:
Tipy: Pokud chcete obnovit původní data, stačí stisknout Ctrl + Z pro zrušení.
Snadné použití? Máte zájem o tuto funkci, prosím kliknutím stáhněte a získejte bezplatnou zkušební verzi na 30 dní.
Pokud používáte Office 365 nebo Excel 2016 a novější verze, Dotaz na napájení je výkonný nástroj, který vám pomůže rozdělit text s oddělovači do více řádků nebo sloupců. Je to užitečné, pokud chcete, aby se rozdělená data obnovila, když se změní vaše původní data. Chcete-li to dokončit, proveďte prosím následující kroky:
Krok 1: Získejte datovou tabulku do Power Query
1. Vyberte rozsah dat, který chcete použít, a klikněte Data > Z tabulky, viz screenshot:
Tipy: V Excelu 2019 a Office 365 klikněte Data > Z tabulky/rozsahu.
2. Ve vyskakovacím okně Vytvořit tabulku , klepněte na tlačítko OK OK tlačítko pro vytvoření tabulky, viz snímek obrazovky:
3. Nyní Dotaz na napájení editor zobrazí se okno s daty, viz snímek obrazovky:
Krok 2: Proveďte transformace v Power Query
1. Vyberte sloupec, který chcete rozdělit. A pak klikněte Home > Rozdělit sloupec > Oddělovačem, viz screenshot:
2. V Rozdělit sloupec oddělovačem dialogové okno:
Chcete-li rozdělit textové řetězce čárkou, mezerou, středníkem atd., postupujte takto:
Chcete-li rozdělit textové řetězce do více řádků zalomením odkazu, postupujte takto:
3. Nyní byla vybraná data rozdělena do několika řádků, jak je znázorněno na obrázku níže:
Krok 3: Výstup Power Query do excelové tabulky
1. Poté byste měli data vypsat do pracovního listu. prosím klikněte Home > Zavřít a načíst > Zavřít a načíst / Zavřít a načíst do, (zde kliknu Zavřít a načíst), viz screenshot:
Tipy: Klepněte na tlačítko Zavřít a načíst vypíše data do nového listu; Klikněte Zavřít a načíst do možnost, data budou vydána na jakýkoli jiný list, který potřebujete.
2. Nakonec se data načtou do nového listu, viz snímek obrazovky:
Tipy: Pokud potřebujete často aktualizovat svá data v původní tabulce, nebojte se, stačí kliknout pravým tlačítkem na výsledkovou tabulku a kliknout Obnovit abyste získali nový výsledek dynamicky.