Dividir strings de texto por delimitador em várias linhas - 3 truques rápidos
Normalmente, você pode usar o recurso Texto para coluna para dividir o conteúdo da célula em várias colunas por um delimitador específico, como vírgula, ponto, ponto e vírgula, barra etc. Mas, às vezes, pode ser necessário dividir o conteúdo da célula delimitada em várias linhas e repita os dados de outras colunas conforme a captura de tela mostrada abaixo. Você tem alguma boa maneira de lidar com essa tarefa no Excel? Este tutorial apresentará alguns métodos eficazes para concluir este trabalho no Excel.
Nesta seção, apresentarei dois códigos VBA para ajudar a dividir o conteúdo da célula que é separado por um determinado delimitador.
Para dividir as strings de texto que são separadas por algum delimitador normal, como vírgula, espaço, ponto e vírgula, barra, etc., o código a seguir pode fazer um favor. Por favor, siga os passos abaixo:
Anote os: Este código não ajuda desfazer, é melhor fazer backup dos dados antes de aplicar este código.
Passo 1: Abra o editor do módulo VBA e copie o código
1. Ative a planilha que deseja utilizar. E então, pressione Alt + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.
2. Na janela aberta, clique em inserção > Módulo para criar um novo módulo em branco.
3. Em seguida, copie e cole o código abaixo no módulo em branco.
Código VBA: Divida o texto por delimitador específico (vírgula, ponto, espaço, 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
Passo 2: Execute o código para obter o resultado
1. Depois de colar o código, pressione F5 chave para executar este código. Em seguida, uma caixa de prompt aparecerá para lembrá-lo de selecionar as células que contêm o texto delimitado que você deseja dividir, veja a captura de tela:
2. Em seguida, clique OK, outra caixa de prompt é exibida para lembrá-lo de digitar o separador no qual deseja dividir os dados com base. Aqui, digito uma vírgula e um espaço (, ), veja a captura de tela:
3. Por fim, clique OK botão. Agora, você verá que as sequências de texto selecionadas são divididas em linhas com base na vírgula e outros dados de colunas relativas são repetidos conforme as capturas de tela abaixo:
Se o conteúdo da sua célula estiver separado por quebras de linha, para dividi-los em várias linhas, aqui está outro código VBA que pode ajudá-lo.
Anote os: Este código não ajuda desfazer é melhor fazer backup dos dados antes de aplicar este código.
Passo 1: Abra o editor do módulo VBA e copie o código
1. Pressione Alt + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.
2. Na janela aberta, clique em inserção > Módulo para criar um novo módulo em branco.
3. Em seguida, copie e cole o código abaixo no módulo em branco.
Código VBA: Dividir texto por quebra de linha
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
Passo 2: Execute o código para obter o resultado
1. Depois de colar o código, pressione F5 chave para executar este código. Na caixa exibida, selecione as células que deseja dividir, veja a captura de tela:
2. Em seguida, clique OK botão, os dados nas células selecionadas são divididos em linhas conforme a imagem abaixo mostrada:
Se você instalou Kutools for Excel, Com o seu Dividir dados em linhas recurso, você pode dividir as strings de texto em várias linhas por qualquer delimitador especificado. Por favor, faça com as seguintes etapas:
Etapa 1: selecione o recurso Dividir dados em linhas
Clique Kutools > Unir e dividir > Dividir dados em linhas, veja a captura de tela:
Etapa 2: especifique as células de dados e o delimitador para divisão
Na caixa de diálogo exibida, use as seguintes opções:
Agora, as células selecionadas com strings de texto delimitadas foram convertidas em várias linhas com base no separador específico, veja a captura de tela:
Tips: Se você deseja restaurar os dados originais, basta pressionar Ctrl + Z para desfazer.
Fácil de usar? Interessado neste recurso, por favor clique para baixar para obter uma avaliação gratuita por 30 dias.
Se você estiver executando o Office 365 ou Excel 2016 e versões posteriores, Consulta de energia é uma ferramenta poderosa que pode ajudá-lo a dividir o texto delimitado em várias linhas ou colunas. É útil se você deseja que os dados divididos sejam atualizados quando os dados originais forem alterados. Por favor, faça com as seguintes etapas para terminá-lo:
Etapa 1: obter a tabela de dados no Power Query
1. Selecione o intervalo de dados que deseja usar e clique em Data > Da tabela, veja a captura de tela:
Tips: No Excel 2019 e no Office 365, clique em Data > Da tabela/intervalo.
2. No pop-out Criar a tabela caixa de diálogo, clique em OK botão para criar uma tabela, veja a captura de tela:
3. Agora o Consulta de energia editor janela é exibida com os dados, veja a captura de tela:
Passo 2: Faça as transformações no Power Query
1. Selecione a coluna que deseja dividir. E então, clique Início > Coluna dividida > Por delimitador, veja a captura de tela:
2. No Dividir Coluna por Delimitador caixa de diálogo:
Para dividir as sequências de texto por vírgula, espaço, ponto e vírgula etc., faça o seguinte:
Para dividir strings de texto em várias linhas por quebra de link, faça o seguinte:
3. Agora, os dados selecionados foram divididos em várias linhas, conforme a captura de tela abaixo:
Etapa 3: enviar o Power Query para uma tabela do Excel
1. E então, você deve enviar os dados para sua planilha. Por favor clique Início > Fechar e carregar > Fechar e carregar / Fechar e carregar para, (aqui, vou clicar Fechar e carregar), veja a captura de tela:
Tips: Clique Fechar e carregar produzirá os dados em uma nova planilha; Clique Fechar e carregar para opção, os dados serão enviados para qualquer outra planilha que você precisar.
2. Por fim, os dados serão carregados para uma nova planilha, veja a captura de tela:
Tips: Se você precisar atualizar seus dados na tabela original com frequência, não se preocupe, basta clicar com o botão direito do mouse na tabela de resultados e clicar em revisar para obter o novo resultado dinamicamente.