Como duplicar linhas com base no valor da célula em uma coluna?
Ao trabalhar com tabelas de dados no Excel, você pode, às vezes, precisar duplicar linhas inteiras de acordo com um valor em uma coluna específica. Por exemplo, imagine que você tenha uma tabela onde a coluna D indica um número, e seu objetivo é copiar ou inserir cada linha tantas vezes quanto o valor correspondente na célula da coluna D. Isso pode ser útil para expansão de dados, preparação de conjuntos de dados para testes, simulação de inventário ou geração de linhas de pedidos repetidos. Realizar isso de forma eficiente, sem repetição manual, ajuda a manter a integridade dos dados e acelera muito o fluxo de trabalho, especialmente para tabelas maiores.
![]() | ![]() | ![]() |
Duplicar linhas várias vezes com base nos valores das células usando código VBA
Duplicar linhas via transformação do Power Query
Duplicar linhas várias vezes com base nos valores das células usando código VBA
Se você precisa criar rapidamente duplicatas de linhas inteiras de acordo com os valores em uma coluna específica (por exemplo, na coluna D), o VBA oferece uma solução direta e eficiente. Essa abordagem é particularmente valiosa ao lidar com grandes conjuntos de dados, pois automatiza o processo e ajuda a garantir precisão. No entanto, trabalhar com o VBA requer algum conhecimento básico da guia Desenvolvedor no Excel e uma compreensão de como executar macros. A principal vantagem é a flexibilidade - o código pode ser ajustado para se adaptar a diferentes intervalos ou colunas-alvo. Por outro lado, se você não está confortável com VBA ou políticas de segurança bloqueiam macros no seu ambiente, considere uma das soluções alternativas abaixo.
1. Pressione e segure as teclas ALT + F11 para abrir a janela Microsoft Visual Basic for Applications.
2. Clique em Inserir > Módulo e cole o seguinte código na janela Módulo.
Código VBA: Duplicar linhas várias vezes com base no valor da célula:
Sub CopyData()
'Updateby Extendoffice
Dim xRow As Long
Dim VInSertNum As Variant
xRow = 1
Application.ScreenUpdating = False
Do While (Cells(xRow, "A") <> "")
VInSertNum = Cells(xRow, "D")
If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "D")).Select
Selection.Insert Shift:=xlDown
xRow = xRow + VInSertNum - 1
End If
xRow = xRow + 1
Loop
Application.ScreenUpdating = False
End Sub
3. Em seguida, pressione a tecla F5 para executar este código. As linhas inteiras serão duplicadas várias vezes com base no valor da célula na coluna D, atendendo aos seus requisitos.
Copiar e inserir linhas com base em um número específico de vezes com uma ferramenta prática - Kutools para Excel
Se você prefere um método sem usar código, ou deseja uma interface amigável para gerenciar a duplicação em lote, o Kutools para Excel oferece uma solução prática. O recurso Copiar ou Inserir Linhas/Colunas com Base no Valor da Célula permite copiar e inserir linhas rapidamente de acordo com o número especificado nas células relevantes. Isso é ideal para quem lida regularmente com operações repetitivas de linhas e precisa de um processo mais visual e personalizável. O Kutools mantém o layout e a formatação da tabela original durante a duplicação, reduzindo o risco de erros acidentais. Esse método funciona bem independentemente de sua experiência com VBA e melhora significativamente a eficiência para intervalos de dados médios a grandes.
- Clique em Kutools > Inserir > Copiar ou Inserir Linhas/Colunas com Base no Valor da Célula para habilitar esse recurso;
- Em seguida, escolha a opção Copiar e inserir linhas e especifique separadamente as células do Intervalo de Inserção e Número de Repetições na caixa de diálogo. Confirme suas escolhas e clique em OK.
Duplicar linhas via transformação do Power Query
O Power Query oferece uma solução robusta e repetível para duplicar linhas com base no valor de uma coluna - ideal para tabelas maiores ou quando você precisa atualizar dados frequentemente. Ao usar essa ferramenta, você pode expandir linhas de acordo com indicadores numéricos sem fórmulas ou códigos. Este método funciona bem para usuários que desejam um processo passo a passo explicável visualmente e precisam de repetibilidade com atualizações futuras de dados.
1. Adicione seus dados a uma Tabela do Excel (selecione o intervalo e pressione Ctrl+T). Vá para Dados > De Tabela/Intervalo para carregar sua tabela no Power Query.
2. No Editor do Power Query, selecione a guia Adicionar Coluna e clique em Coluna Personalizada.
3. Digite a seguinte fórmula para gerar uma lista para cada linha de acordo com o valor na coluna D. ( Observação: Você deve substituir [D] pelo cabeçalho real da sua coluna. Por exemplo, aqui, selecionarei os Números de Repetição e clicarei no botão Inserir para substituir o argumento [D].)
List.Repeat({1}, [D])
4. Clique no botão Expandir ao lado da nova coluna personalizada e clique em Expandir para Novas Linhas.
5. Em seguida, você pode ver que os dados foram duplicados com base nos valores na coluna D, veja a captura de tela:
6. Remova as colunas auxiliares, se necessário, e clique em Fechar e Carregar para retornar os dados ao Excel.
Melhores Ferramentas de Produtividade para Office
Potencialize suas habilidades no Excel com o Kutools para Excel e experimente uma eficiência sem igual. O Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
O Office Tab traz interface com abas para o Office e facilita muito o seu trabalho
- Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas abas na mesma janela, em vez de abrir novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!