KutoolsforOffice — Uma solução, cinco ferramentas poderosas.Fazer mais com menos esforço.

Dividir cadeias de texto por delimitador em várias linhas – Truques Rápidos 3

AutorXiaoyang Data de Modificação

Normalmente, pode utilizar a funcionalidade Texto em Colunas para dividir o conteúdo de uma célula em várias colunas com base num determinado delimitador — como vírgula, ponto, ponto e vírgula, barra, entre outros. Contudo, por vezes, poderá precisar de dividir esse conteúdo delimitado em várias linhas, repetindo os dados das restantes colunas, tal como ilustrado na imagem seguinte. Conhece alguma boa solução para realizar esta tarefa no Excel? Este tutorial apresenta métodos eficazes para concluir este trabalho no Excel.

dividir texto em várias linhas

Vídeo: Dividir cadeias de texto por delimitador em várias linhas

 


Método A: Dividir texto delimitado em várias linhas com código VBA

Nesta secção, apresento dois códigos VBA para dividir conteúdos de células separados por um determinado delimitador.

Divida o texto delimitado por vírgulas, espaços, pontos e vírgulas, entre outros separadores.

Para dividir cadeias de texto separadas por um delimitador comum — como vírgula, espaço, ponto e vírgula, barra, entre outros — o código seguinte pode ajudá-lo. Siga os passos abaixo:

Nota: Este código não suporta a função Desfazer; por isso, recomenda-se que faça uma cópia de segurança dos seus dados antes de o aplicar.

Passo 1: Abra o editor de módulos VBA e copie o código

1. Ative a folha que pretende utilizar e, em seguida, prima as teclas «Alt» + "F11" para abrir a janela do Microsoft Visual Basic for Applications.

2. Na janela aberta, clique em «Inserir» > «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 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. Após colar o código, prima a tecla "F5" para executá-lo. Em seguida, surge uma caixa de diálogo solicitando que selecione as células contendo o texto delimitado que pretende dividir, conforme ilustrado:

código vba para selecionar as células que contêm o texto delimitado

2. De seguida, clique em «OK»; irá surgir outra caixa de diálogo a solicitar que introduza o separador com base no qual pretende dividir os dados. Aqui, introduzo uma vírgula seguida de um espaço (, ), conforme ilustrado:

código vba para indicar um separador com base no qual os dados serão divididos

3. Por fim, clique no botão «OK». Agora, verá que as cadeias de texto selecionadas foram divididas em linhas com base na vírgula, repetindo-se os dados das restantes colunas correspondentes, tal como ilustrado nas imagens seguintes:

as cadeias de texto selecionadas são divididas em linhas

Dividir texto separado por quebra de linha

Se o conteúdo das suas células estiver separado por quebras de linha, aqui está outro código VBA que o pode ajudar a dividi-lo em várias linhas.

Nota: Este código não suporta a função Desfazer; por isso, recomenda-se fazer uma cópia de segurança dos dados antes de o aplicar.

Passo 1: Abra o editor de módulos VBA e copie o código

1. Prima as teclas «Alt» + "F11" para abrir a janela do Microsoft Visual Basic for Applications.

2. Na janela aberta, clique em «Inserir» > «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. Após colar o código, prima a tecla "F5" para o executar. Na caixa que aparece, selecione as células que pretende dividir, conforme ilustrado:

código vba para selecionar o intervalo a dividir

2. Em seguida, clique no botão «OK»; os dados das células selecionadas serão divididos em linhas, tal como ilustrado na imagem seguinte:

os dados nas células selecionadas são divididos em linhas

Método B: Divida texto delimitado em várias linhas em 10 segundos com Kutools para Excel

Se tiver o «Kutools para Excel» instalado, pode utilizar a funcionalidade «Dividir em várias linhas» para separar cadeias de texto em várias linhas com base em qualquer delimitador que indicar. Siga estes passos:

Kutools para Exceloferece mais de 300 funcionalidades avançadas para simplificar tarefas complexas, potenciando a criatividade e a eficiência.Integrado com capacidades de IA, o Kutools automatiza tarefas com precisão, tornando a gestão de dados simples.Informações detalhadas sobre Kutools para Excel...         Avaliação gratuita...

Passo 1: Selecione a funcionalidade Dividir em várias linhas

Clique em «Kutools» > «Mesclar e Dividir» > «Dividir em várias linhas», conforme ilustrado:

Clique em Kutools > Unir e Dividir > Dividir Dados em Linhas

Passo 2: Especifique as células de dados e o delimitador para a divisão

Na caixa de diálogo que surge, utilize as seguintes opções:

  • 1). Selecione a lista de células que pretende dividir na caixa de texto «Intervalo (uma única coluna)».
  • 2). Em seguida, escolha o delimitador que separa os seus dados; aqui, selecione «Outro» e digite uma vírgula seguida de um espaço (, ) na caixa de texto.
  • 3). Por fim, clique no botão «OK».
Especifique as células de dados e o delimitador para a divisão na caixa de diálogo

Agora, as células selecionadas com cadeias de texto delimitadas foram convertidas em várias linhas com base no separador especificado, conforme ilustrado:

as células selecionadas são convertidas em várias linhas

Dica: Para restaurar os dados originais, basta premir Ctrl + Z e desfazer a alteração.

Fácil de usar? Interessado nesta funcionalidade? Então clique para transferir e experimentar gratuitamente durante 30 dias!


Método C: Dividir texto delimitado em várias linhas com Power Query

Se estiver a utilizar o Office 365 ou o Excel 2016 e versões posteriores, o Power Query é uma ferramenta poderosa que lhe permite dividir texto delimitado em várias linhas ou colunas — ideal se pretender que os seus dados divididos sejam atualizados automaticamente sempre que os dados originais forem alterados. Siga os passos seguintes para concluir esta operação:

Passo 1: Importe a tabela de dados para o Power Query

1. Selecione o intervalo de dados que pretende utilizar e, em seguida, clique em «Dados» > «A partir de Tabela», conforme ilustrado:

Dica: No Excel 2019 e no Office 365, clique em Dados > A partir de Tabela/Intervalo.

clique em Dados > A partir de Tabela

2. Na caixa de diálogo «Criar Tabela» que surge, clique no botão «OK» para criar a tabela, conforme ilustrado:

clique no botão OK para criar uma tabela

3. Agora, a janela «Editor do Power Query» é apresentada com os dados, conforme ilustrado:

a janela do Power Query Editor é apresentada com os dados

Passo 2: Realize as transformações no Power Query

1. Selecione a coluna que deseja dividir e, em seguida, clique em «Base» > «Dividir Coluna» > «Por Delimitador», conforme ilustrado:

clique em Início > Dividir Coluna > Por Delimitador

2. Na caixa de diálogo «Dividir Coluna por Delimitador»:

Para dividir cadeias de texto por vírgula, espaço, ponto e vírgula, etc., proceda da seguinte forma:

  • 1). Escolha, na lista pendente «Selecionar ou introduzir delimitador», o delimitador pelo qual os seus dados estão separados;
  • 2). Selecione «Cada ocorrência do delimitador» na secção «Dividir em».
  • 3). Em seguida, clique em «Opções avançadas» para expandir a secção e selecione «Linhas» em «Dividir em».
  • 4). Por fim, clique em «OK» para fechar esta caixa de diálogo.
especifique as opções na caixa de diálogo para dividir o texto por vírgula, espaço, ponto e vírgula, etc.

Para dividir cadeias de texto em várias linhas por quebra de linha, proceda da seguinte forma:

  • 1). Escolha «Personalizado» na lista pendente «Selecionar ou introduzir delimitador»;
  • 2). Na lista pendente «Inserir caracteres especiais», clique em «Quebra de linha» e os caracteres «#(lf)» serão inseridos automaticamente na caixa de texto sob «Personalizado»;
  • 3). Selecione «Cada ocorrência do delimitador» na secção «Dividir em».
  • 4). Em seguida, clique em «Opções avançadas» para expandir a secção e selecione «Linhas» em «Dividir em».
  • 5). Por fim, clique em «OK» para fechar esta caixa de diálogo.
especifique as opções na caixa de diálogo para dividir o texto por quebra de linha

3. Agora, o Selecionar Dados foi dividido em várias linhas, tal como ilustrado na imagem seguinte:

os dados selecionados foram divididos em várias linhas

Passo 3: Exporte o Power Query para uma tabela do Excel

1. Em seguida, exporte os dados para a sua folha de cálculo: clique em **Base** > **Fechar e Carregar** > **Fechar e Carregar / Fechar e Carregar Para** (neste caso, selecione **Fechar e Carregar**), conforme ilustrado.

clique em Início > Fechar e Carregar para carregar os dados

Dica: ao clicar em **Fechar e Carregar**, os dados são exportados para uma nova planilha; ao selecionar **Fechar e Carregar Para**, pode escolher qualquer outra folha de destino.

2. Finalmente, os dados serão carregados numa nova planilha, conforme ilustrado:

os dados são carregados numa nova folha de cálculo

Dica: Se precisar de atualizar frequentemente os dados na tabela original, não se preocupe — basta clicar com o botão direito do rato na tabela de resultados e selecionar “Atualizar” para obter dinamicamente os resultados mais recentes.


Artigos Relacionados:

  • Dividir valores de células em várias colunas
  • No Excel, quando pretende dividir uma lista de valores de células em várias colunas utilizando determinados delimitadores, como vírgula, espaço, ponto, quebra de linha, etc., normalmente a funcionalidade incorporada «Texto para Colunas» pode ajudá-lo a concluir esta tarefa passo a passo. Neste artigo, irei apresentar-lhe alguns bons truques para dividir facilmente e rapidamente os valores das células em múltiplas colunas ou linhas.
  • Dividir uma célula em múltiplas linhas ou colunas
  • Imagine que tem uma única célula com vários conteúdos separados por um caractere específico — por exemplo, ponto e vírgula — e pretende dividi-la em múltiplas linhas ou colunas com base nesse separador. Nesse caso, conhece alguma forma rápida de fazer isso no Excel?
  • Dividir cadeia de texto por maiúsculas/minúsculas
  • No Excel, normalmente dividimos texto com base numa largura específica ou num delimitador, utilizando a função **Texto para Colunas**. Mas já experimentou dividir texto com base em maiúsculas e minúsculas? Por exemplo, imagine que tem uma lista de dados e precisa separá-los em duas colunas com base na capitalização: uma coluna com texto **em minúsculas** e outra com texto **em maiúsculas**, tal como ilustrado na imagem seguinte. A função **Texto para Colunas** não suporta esta operação — mas posso mostrar-lhe um truque prático para dividir rapidamente uma cadeia de texto por maiúsculas e minúsculas no Excel.
  • Dividir número em dígitos individuais
  • Imagine que precisa separar ou dividir um número nos seus dígitos individuais, tal como mostrado na imagem seguinte. O que pode fazer para obter este resultado? Este artigo apresenta-lhe dois métodos.