Împărțiți șirurile de text după delimitator în mai multe rânduri - 3 trucuri rapide
În mod normal, puteți folosi funcția Text în coloană pentru a împărți conținutul celulei în mai multe coloane printr-un anumit delimitator, cum ar fi virgulă, punct, punct și virgulă, bară oblică etc. Dar, uneori, poate fi necesar să împărțiți conținutul celulei delimitate în mai multe rânduri. și repetați datele din alte coloane așa cum se arată mai jos. Aveți modalități bune de a face față acestei sarcini în Excel? Acest tutorial va introduce câteva metode eficiente pentru a finaliza această lucrare în Excel.
În această secțiune, voi introduce două coduri VBA pentru a ajuta la împărțirea conținutului celulelor care sunt separate printr-un anumit delimitator.
Pentru a împărți șirurile de text care sunt separate de un delimitator normal, cum ar fi virgulă, spațiu, punct și virgulă, bară oblică etc., următorul cod vă poate face o favoare. Vă rugăm să urmați pașii de mai jos:
notițe: Acest cod nu a sustine Anula, ar fi bine să faceți backup pentru datele înainte de a aplica acest cod.
Pasul 1: Deschideți editorul de module VBA și copiați codul
1. Activați foaia pe care doriți să o utilizați. Și apoi, apăsați Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.
2. În fereastra deschisă, faceți clic pe Insera > Module pentru a crea un nou modul gol.
3. Apoi, copiați și inserați codul de mai jos în modulul gol.
Cod VBA: Împărțiți textul după un delimitator specific (virgulă, punct, spațiu 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
Pasul 2: Executați codul pentru a obține rezultatul
1. După ce lipiți codul, apăsați F5 tasta pentru a rula acest cod. Apoi, va apărea o casetă de solicitare pentru a vă aminti că selectați celulele care conțin textul delimitat pe care doriți să îl împărțiți, vedeți captura de ecran:
2. Apoi, faceți clic pe OK, apare o altă casetă promptă pentru a vă aminti că introduceți separatorul pe care doriți să împărțiți datele pe baza. Aici, tastez o virgulă și un spațiu (, ), vezi captura de ecran:
3. În cele din urmă, faceți clic pe OK buton. Acum, veți vedea că șirurile de text selectate sunt împărțite în rânduri pe baza virgulei și alte date despre coloane relative sunt repetate după cum se arată în capturile de ecran de mai jos:
Dacă conținutul celulei dvs. este separat prin întreruperi de linie, pentru a le împărți în mai multe rânduri, iată un alt cod VBA care vă poate ajuta.
notițe: Acest cod nu a sustine Anula mai bine ai face backup la datele înainte de a aplica acest cod.
Pasul 1: Deschideți editorul de module VBA și copiați codul
1. presa Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.
2. În fereastra deschisă, faceți clic pe Insera > Module pentru a crea un nou modul gol.
3. Apoi, copiați și inserați codul de mai jos în modulul gol.
Cod VBA: Împărțiți textul prin întrerupere de linie
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
Pasul 2: Executați codul pentru a obține rezultatul
1. După ce lipiți codul, apăsați F5 tasta pentru a rula acest cod. În caseta care apare, selectați celulele pe care doriți să le împărțiți, vedeți captura de ecran:
2. Apoi, faceți clic pe OK butonul, datele din celulele selectate sunt împărțite în rânduri, așa cum se arată mai jos:
Dacă ați instalat Kutools pentru Excel, Cu său Împărțiți datele în rânduri caracteristică, puteți împărți șirurile de text în mai multe rânduri cu orice delimitator specificat. Vă rugăm să urmați următorii pași:
Pasul 1: Selectați caracteristica Împărțire date în rânduri
Clic Kutools > Merge & Split > Împărțiți datele în rânduri, vezi captura de ecran:
Pasul 2: Specificați celulele de date și delimitatorul pentru împărțire
În caseta de dialog care apare, utilizați următoarele opțiuni:
Acum, celulele selectate cu șiruri de text delimitate au fost convertite în mai multe rânduri pe baza separatorului specific, vezi captura de ecran:
sfaturi: Dacă doriți să restaurați datele originale, trebuie doar să apăsați Ctrl + Z pentru desfacere.
Ușor de folosit? Interesat de această funcție, vă rog faceți clic pentru a descărca pentru a obține o încercare gratuită timp de 30 de zile.
Dacă rulați Office 365 sau Excel 2016 și versiuni ulterioare, Interogare de alimentare este un instrument puternic care vă poate ajuta să împărțiți textul delimitat în mai multe rânduri sau coloane. Este util dacă doriți ca datele împărțite să fie reîmprospătate atunci când datele inițiale se modifică. Vă rugăm să urmați următorii pași pentru a o finaliza:
Pasul 1: Introduceți tabelul de date în Power Query
1. Selectați intervalul de date pe care doriți să îl utilizați, apoi faceți clic Date > Din tabel, vezi captura de ecran:
sfaturi: În Excel 2019 și Office 365, faceți clic Date > Din masă/gamă.
2. În popped-out Creați tabel casetă de dialog, faceți clic pe OK butonul pentru a crea un tabel, vezi captura de ecran:
3. Acum Interogare de alimentare Editor se afișează fereastra cu datele, vezi captura de ecran:
Pasul 2: faceți transformările în Power Query
1. Selectați coloana pe care doriți să o împărțiți. Și apoi, faceți clic Acasa > Coloana împărțită > Prin delimitator, vezi captura de ecran:
2. În Împărțiți coloana după delimitator căsuță de dialog:
Pentru a împărți șirurile de text prin virgulă, spațiu, punct și virgulă etc., procedați astfel:
Pentru a împărți șirurile de text în mai multe rânduri prin întrerupere de link, procedați astfel:
3. Acum, datele selectate au fost împărțite în mai multe rânduri, așa cum se arată mai jos:
Pasul 3: Trimiteți Power Query într-un tabel Excel
1. Și apoi, ar trebui să scoateți datele în foaia de lucru. Vă rugăm să faceți clic Acasa > Închideți și încărcați > Închideți și încărcați / Închideți și încărcați în, (aici, voi face clic Închideți și încărcați), vezi captura de ecran:
sfaturi: Faceți clic pe Închideți și încărcați va scoate datele într-o nouă foaie de lucru; Clic Închideți și încărcați în opțiunea, datele vor fi trimise pe orice altă foaie de care aveți nevoie.
2. În cele din urmă, datele vor fi încărcate într-o nouă foaie de lucru, vezi captura de ecran:
sfaturi: Dacă trebuie să actualizați frecvent datele din tabelul original, nu vă faceți griji, trebuie doar să faceți clic dreapta pe tabelul cu rezultate și să faceți clic Reîmprospăta pentru a obține noul rezultat în mod dinamic.