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. A realização eficiente disso 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 com código VBA
Duplicar linhas via transformação Power Query
Duplicar linhas várias vezes com base nos valores das células com 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 VBA exige algum conhecimento básico da guia Desenvolvedor do Excel e uma compreensão de como executar macros. A principal vantagem é a flexibilidade — o código pode ser ajustado para se adequar a diferentes intervalos ou colunas-alvo. Por outro lado, se você não estiver confortável com VBA ou políticas de segurança bloquearem macros em seu ambiente, considere uma das soluções alternativas abaixo.
1. Mantenha pressionadas 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 do 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.
Copie e insira linhas com base em um número especificado 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 duplicações em lote, o Kutools para Excel oferece uma solução prática. O recurso Copiar ou Inserir Linhas/Colunas de Acordo com Dados Especificados permite que você copie e insira linhas rapidamente de acordo com o número especificado nas células relevantes. Isso é ideal para quem lida regularmente com essas operações de linhas repetitivas 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 perfeitamente 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 de Acordo com Dados Especificados para habilitar esse recurso;
- Em seguida, escolha a opção Copiar e inserir linhas e especifique as células do Intervalo de Inserção e Número de Repetições separadamente na caixa de diálogo. Confirme suas escolhas e clique em OK.
Duplicar linhas via transformação Power Query
O Power Query fornece 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 com frequência. Ao usar essa ferramenta, você pode expandir linhas de acordo com indicadores numéricos sem fórmulas ou códigos. Esse método funciona bem para usuários que desejam um processo passo a passo visualmente explicável 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. ( Nota: Você deve substituir [D] pelo cabeçalho real da sua coluna. Por exemplo, aqui, vou selecionar as Vezes de Duplicação e clicar 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. Então, 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 & Carregar para retornar os dados ao Excel.
Melhores Ferramentas de Produtividade para Office
Impulsione suas habilidades no Excel com Kutools para Excel e experimente uma eficiência sem igual. 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...
Office Tab traz interface de abas para o Office e facilita muito 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 da mesma janela, em vez de novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!