Ir ao conteúdo
  • Cadastre-se
rdias_mm

Excel Excel - Unir dados de células duplicadas em uma linha

Posts recomendados

Olá pessoal alguém poderia me ajudar com o seguinte problema:

 

Tenho uma planilha com quase 7000 linhas onde em várias linhas a matricula (coluna A) e data (coluna B) são iguais, mas as informações das demais colunas não. O que preciso é unir em uma unica linha todas as informações deixando somente uma linha com a mesma matricula e data. Exemplo abaixo e na planilha em anexo.

 

image.thumb.png.3e4104aab4012d09d87f072e85333777.png

 

Muitíssimo obrigado!

 

Hsal_Fun_Lotac.xls

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quiser testar uma solução via macro então instale uma cópia do código abaixo em um módulo comum, assim:
1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor / Inserir / Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

 

para rodar o código:
6. tecle 'Alt+F8' / selecione a macro correspondente / Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 / Opções).

Sub RearranjaDados()
 Dim r As Long, x As Long
  Application.ScreenUpdating = False
  r = 2
  Do While Cells(r, 1) <> ""
   Do While Cells(r + x, 1) = Cells(r + x + 1, 1) And Cells(r + x, 2) = Cells(r + x + 1, 2)
    x = x + 1
   Loop
   If x = 1 Then
     Cells(r, 7).Resize(, 1).Value = Cells(r + 1, 7).Resize(, 1).Value
     Rows(r + 1).Delete
   ElseIf x = 2 Then
     Cells(r, 7) = Cells(r + 1, 7): Cells(r, 8) = Cells(r + 2, 8)
     Rows(r + 1).Resize(2).Delete
   End If
   r = r + 1: x = 0
  Loop
  Application.ScreenUpdating = True
End Sub

obs.

1. antes de rodar o código exclua as linhas 1 e 2 da planilha

2. o código fará as alterações na própria tabela de dados

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Osvaldo muito obrigado, deu super certo, fantástico!

 

Depois que apliquei a solução, descobri uma outra necessidade, algumas células abaixo ficaram vazias e nestes casos preciso repetir o último conteúdo existente da célula acima que não for vazia. Tem jeito pra isso também? Veja o exemplo na imagem depois de aplicada a macro que você mandou:

 

image.png.7a2f929d682778a6b30ba9b99beaa4f9.png

 

Agora como precisaria que ficasse:

Tudo que está verde eu repliquei manualmente.

 

image.png.6cfd292ce2cad77b4d49f1e9580c4c9e.png

 

Só deve parar de preencher quando for outra pessoa (coluna A), daí começa novamente a ver as células abaixo completando com o que estiver acima e se for vazia.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Acrescente ao código as duas linhas em vermelho conforme abaixo.

 

  Loop
   Range("G2:H" & Cells(Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
   Range("G2:H" & Cells(Rows.Count, 1).End(3).Row).Value = Range("G2:H" & Cells(Rows.Count, 1).End(3).Row).Value

  Application.ScreenUpdating = True

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom, show de bola, funcionou perfeitamente e resolveu o problema, Obrigado!

 

Se por acaso eu quisesse que a "chave" fosse a coluna A (matrícula), B (Data) e também a C (horas) como condição para excluir a linha onde deveria alterar? Porque olhando somente para A e B acabou excluindo quando a data repetiu indevidamente pois havia dados nas demais células da linha.

 

Tudo de bom e um grande abraço! Sucesso!

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa é a sua segunda solicitação de alteração em relação ao pedido original, então eu sugiro que você levante por completo a sua necessidade real, prepare uma planilha com poucos dados que representem TODAS as variações possíveis de ocorrerem, coloque na própria planilha o resultado desejado e disponibilize aqui no fórum.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...