Como duplicar linhas com base no valor de uma célula numa coluna?
Ao trabalhar com tabelas de dados no Excel, poderá por vezes precisar de duplicar uma linha inteira com base num valor numa coluna específica. Por exemplo, imagine que tem uma tabela em que a coluna D contém um número e o seu objetivo é copiar ou inserir cada linha tantas vezes quantas o valor indicado na respetiva célula da coluna D. Esta abordagem é útil para expandir dados, preparar conjuntos de dados para testes, simular inventário ou gerar linhas repetidas de encomendas. Conseguir fazê-lo de forma eficiente, sem recorrer à repetição manual, ajuda a preservar a integridade dos dados e acelera significativamente o seu fluxo de trabalho — especialmente em tabelas maiores.
![]() | ![]() | ![]() |
Linha duplicada várias vezes com base nos valores das células com código VBA
Linha duplicada através da transformação Power Query
Linha duplicada várias vezes com base nos valores das células com código VBA
Se precisar de criar rapidamente duplicados de uma linha inteira com base nos valores de uma coluna específica (por exemplo, na coluna D), o VBA oferece uma solução direta e eficiente. Esta abordagem revela-se especialmente valiosa ao trabalhar com grandes volumes de dados, automatizando o processo e garantindo precisão. No entanto, exige alguma familiaridade básica com o separador Programador do Excel e conhecimento sobre como executar macros. A principal vantagem reside na flexibilidade — o código pode ser facilmente adaptado a diferentes intervalos ou colunas-alvo. Por outro lado, se não se sentir confortável com VBA ou se as políticas de segurança do seu ambiente bloquearem macros, considere uma das soluções alternativas abaixo.
1. Mantenha premidas as teclas ALT + F11 para abrir a janela Microsoft Visual Basic para Aplicações.
2. Clique em Inserir > Módulo e cole o seguinte código na janela do Módulo.
Código VBA: Linha duplicada 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, prima 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, conforme os seus requisitos.
Copiar e Inserir Linhas com base num número especificado com uma ferramenta prática – Kutools para Excel
Se preferir um método sem utilizar código ou desejar uma interface amigável para gerir a duplicação em lote, o Kutools para Excel oferece uma solução prática. A sua funcionalidade Copiar ou Inserir Linhas/Colunas de Acordo com Dados Especificados permite-lhe copiar e inserir rapidamente linhas com base no número indicado nas células relevantes. É ideal para quem realiza regularmente este tipo de operações repetitivas com linhas e precisa de um processo mais visual e personalizável. O Kutools preserva o esquema e a formatação da tabela original durante a duplicação, reduzindo o risco de erros acidentais. Este método funciona perfeitamente independentemente da sua experiência com VBA e melhora significativamente a eficiência em intervalos de média a grande dimensão.
- Clique em Kutools>Inserir>Linha duplicada/Colunas com Base no Valor da Célulapara ativar esta funcionalidade;
- Depois, escolha a opção Copiar e Inserir Linhas e especifique separadamente, na caixa de diálogo, as células do Intervalo de Geração e o Número de Repetições. Confirme as suas escolhas e clique em OK.

Linha duplicada através da transformação Power Query
O Power Query oferece uma solução robusta e repetível para duplicar linhas com base num valor de coluna — ideal para tabelas maiores ou quando precisa de atualizar os dados frequentemente. Com esta ferramenta, pode expandir linhas de acordo com indicadores numéricos sem recorrer a fórmulas nem a código. Este método é perfeito para utilizadores que procuram um processo passo a passo, visualmente claro, e que exijam repetibilidade nas futuras atualizações dos dados.
1. Adicione os seus dados a uma tabela do Excel (selecione o intervalo e prima)Ctrl+T). Aceda a Dados > A partir de Tabela/Intervalo para carregar a sua tabela no Power Query.
2. No Editor do Power Query, selecione o separador Adicionar Coluna e clique em Coluna Personalizada.
3. Introduza a seguinte fórmula para gerar uma lista para cada linha com base no valor da coluna D. ()Nota: Substitua [D] pelo cabeçalho real da sua coluna. Por exemplo, aqui selecione Duplicate Timese clique no botão Inserirpara substituir o argumento [D].)
List.Repeat({1}, [D]) 
4. Clique no botão Expandir junto à nova coluna personalizada e, em seguida, clique em Expandir para Novas Linhas.

5. Depois, verá que os dados foram duplicados com base nos valores da coluna D, conforme ilustrado na imagem:

6. Remova as colunas auxiliares, se necessário, e clique em Fechar e Carregar para devolver os dados ao Excel.
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos


