Dividi le stringhe di testo per delimitatore in più righe: 3 trucchi rapidi
Normalmente, puoi utilizzare la funzione Testo in colonna per dividere il contenuto della cella in più colonne in base a un delimitatore specifico, come virgola, punto, punto e virgola, barra, ecc. Ma, a volte, potresti dover dividere il contenuto della cella delimitato in più righe e ripetere i dati da altre colonne come mostrato nell'immagine sottostante. Hai qualche buon modo per gestire questa attività in Excel? Questo tutorial introdurrà alcuni metodi efficaci per completare questo lavoro in Excel.
In questa sezione, introdurrò due codici VBA per aiutare a dividere i contenuti delle celle che sono separati da un certo delimitatore.
Per dividere le stringhe di testo che sono separate da un normale delimitatore, come virgola, spazio, punto e virgola, barra, ecc., il seguente codice può farti un favore. Si prega di seguire i passaggi seguenti:
Note:: Questo codice non l' assistenza di Disfare, è meglio eseguire il backup dei dati prima di applicare questo codice.
Passaggio 1: apri l'editor del modulo VBA e copia il codice
1. Attiva il foglio che desideri utilizzare. E poi, premi Alt + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.
2. Nella finestra aperta, fare clic su inserire > Modulo per creare un nuovo modulo vuoto.
3. Quindi, copia e incolla il codice seguente nel modulo vuoto.
Codice VBA: dividi il testo per delimitatore specifico (virgola, punto, spazio, ecc.)
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
Passaggio 2: eseguire il codice per ottenere il risultato
1. Dopo aver incollato il codice, premere F5 chiave per eseguire questo codice. Quindi, verrà visualizzata una finestra di messaggio per ricordarti di selezionare le celle che contengono il testo delimitato che desideri dividere, vedi screenshot:
2. Quindi fare clic su OK, viene visualizzata un'altra finestra di messaggio per ricordarti di digitare il separatore in base al quale desideri suddividere i dati. Qui, digito una virgola e uno spazio (, ), vedi screenshot:
3. Infine, fare clic su OK pulsante. Ora, vedrai le stringhe di testo selezionate suddivise in righe in base alla virgola e altri dati relativi alle colonne vengono ripetuti come mostrato di seguito:
Se i contenuti della tua cella sono separati da interruzioni di riga, per dividerli in più righe, ecco un altro codice VBA che può aiutarti.
Note:: Questo codice non l' assistenza di Disfare faresti meglio a eseguire il backup dei dati prima di applicare questo codice.
Passaggio 1: apri l'editor del modulo VBA e copia il codice
1. Stampa Alt + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.
2. Nella finestra aperta, fare clic su inserire > Modulo per creare un nuovo modulo vuoto.
3. Quindi, copia e incolla il codice seguente nel modulo vuoto.
Codice VBA: dividi il testo per interruzione di riga
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
Passaggio 2: eseguire il codice per ottenere il risultato
1. Dopo aver incollato il codice, premere F5 chiave per eseguire questo codice. Nella casella spuntata, seleziona le celle che desideri dividere, vedi screenshot:
2. Quindi fare clic su OK pulsante, i dati nelle celle selezionate sono divisi in righe come mostrato nell'immagine sottostante:
Se hai installato Kutools for Excel, Con la sua Dividi i dati in righe funzione, puoi dividere le stringhe di testo in più righe in base a qualsiasi delimitatore specificato. Si prega di fare con i seguenti passaggi:
Passaggio 1: selezionare la funzione Dividi dati in righe
Clicchi Kutools > Unisci e dividi > Dividi i dati in righe, vedi screenshot:
Passaggio 2: specificare le celle di dati e il delimitatore per la divisione
Nella finestra di dialogo visualizzata, utilizzare le seguenti opzioni:
Ora, le celle selezionate con stringhe di testo delimitate sono state convertite in più righe in base al separatore specifico, vedi screenshot:
Suggerimenti:: Se si desidera ripristinare i dati originali, è sufficiente premere Ctrl + Z per disfare.
Facile da usare? Interessato a questa funzione, per favore fare clic per scaricare per ottenere una prova gratuita per 30 giorni.
Se utilizzi Office 365 o Excel 2016 e versioni successive, Power Query è un potente strumento che può aiutarti a dividere il testo delimitato in più righe o colonne. È utile se si desidera che i dati suddivisi vengano aggiornati quando i dati originali vengono modificati. Si prega di fare con i seguenti passaggi per finirlo:
Passaggio 1: ottenere la tabella dei dati in Power Query
1. Selezionare l'intervallo di dati che si desidera utilizzare, quindi fare clic Dati > Dalla tabella, vedi screenshot:
Suggerimenti:: in Excel 2019 e Office 365, fare clic su Dati > Dalla tabella/intervallo.
2. Nel saltato fuori Crea tabella finestra di dialogo, fare clic OK pulsante per creare una tabella, vedi screenshot:
3. Ora il Power Query editore viene visualizzata la finestra con i dati, vedi screenshot:
Passaggio 2: eseguire le trasformazioni in Power Query
1. Seleziona la colonna che vuoi dividere. E poi, clicca Casa > Colonna divisa > Per delimitatore, vedi screenshot:
2. Nel Dividi colonna per delimitatore la finestra di dialogo:
Per dividere le stringhe di testo per virgola, spazio, punto e virgola, ecc., eseguire le seguenti operazioni:
Per dividere le stringhe di testo in più righe mediante un'interruzione di collegamento, eseguire le seguenti operazioni:
3. Ora, i dati selezionati sono stati suddivisi in più righe come mostrato nell'immagine sottostante:
Passaggio 3: inviare la Power Query a una tabella di Excel
1. E poi, dovresti inserire i dati nel tuo foglio di lavoro. Si prega di fare clic Casa > Chiudi e carica > Chiudi e carica / Chiudi e carica in, (qui, cliccherò Chiudi e carica), vedi screenshot:
Suggerimenti:: Fare clic su Chiudi e carica produrrà i dati in un nuovo foglio di lavoro; Clic Chiudi e carica in opzione, i dati verranno inviati a qualsiasi altro foglio di cui hai bisogno.
2. Infine, i dati verranno caricati in un nuovo foglio di lavoro, vedi screenshot:
Suggerimenti:: Se devi aggiornare frequentemente i tuoi dati nella tabella originale, non preoccuparti, devi solo fare clic con il pulsante destro del mouse sulla tabella dei risultati e fare clic ricaricare per ottenere dinamicamente il nuovo risultato.