Notifications
Clear all

Macro para Consolidar resultados

5 Posts
2 Usuários
0 Reactions
1,046 Visualizações
(@wilsonwasj)
Posts: 0
New Member
Topic starter
 

Boa tarde.
Tenho a seguinte planilha:

Nela tenho Milhares de dados sobre escolas em Minas gerais.

Da coluna A ate a Coluna D tenho as informações. Nas colunas F e G tenho que criar um filtro que me de um resultado semelhante ao que esta lá. (fiz este processo manualmente, Imaginem fazer isso em mais de 20.000 Linhas…..)

Tem escola que tem 3 quantidades: 12, 6 e 16.. Porém elas aparecem em linhas distintas.

Preciso que os resultados apareçam como nas colunas F e G. Ou seja não repita o nome da Escola e coloque em sua frente a consolidação das quantidades da forma que esta lá..

Alguém sabe alguma Macro que possa agilizar este trabalho?

Preciso muito mesmo dessa ajuda..

 
Postado : 02/05/2016 12:37 pm
(@osvaldomp)
Posts: 857
Prominent Member
 

sugestão - disponibilize uma amostra do seu arquivo, com 15 a 20 linhas contendo dados e com o resultado esperado; explique o critério que você adotou para repetir o nome nas linhas 5 e 6 do resultado esperado no seu print acima

 
Postado : 02/05/2016 3:16 pm
(@wilsonwasj)
Posts: 0
New Member
Topic starter
 

Bom dia Osvaldomp.

Escrevi errado na imagem.. na verdade não era para ter repetido a escola.

Veja outra foto:

Acrescentei outra coluna pois ela também é importante.

Os criterios seriam baseados nas colunas A e D:

Nas linhas 6 a 8 da planilha tenho A escola EE ALMIRANTE BARROSO repetida 3x. Tenho duas vezes o codigo 5 e 1x o codigo 6.

1. Se existirem 2 Codigos iguais na Col A, e os dois codigos na Col D Forem diferentes então Soma-se A quantidade, Col E, Referente aos codigos, porem não repete o nome da escola e o resultado aparece como esta na Coluna G e H.

2. Se Existirem 2 codigos iguais Na coluna A E os respectivos codigos da Coluna D forem também iguais aí sim vai ser duplicado, Excui-se o valor duplicado mantendo apenas 1 valor,
Porem mantem-se a formatação das colunas G e H.

Ou seja, Codigos iguais Coluna A com codigos diferentes na Coluna D então soma-se Coluna E.

Desculpe se a explicação estiver meio confusa.

Segue abaixo um arquivo contendo as escolas:

https://drive.google.com/file/d/0B39S63Qixbi9SjZKTXBma0FnTms/view?usp=sharing

Se pude me ajuda... São mais de 3357 escolas :o... Imagina fazer tudo isso na mão toda semana ... :cry:

 
Postado : 03/05/2016 9:11 am
(@osvaldomp)
Posts: 857
Prominent Member
 

Olá, Wilson.
Veja se ajuda.

Sub ConsolidarDados()
 Dim LR As Long, m As Long, c As Long
 Range("G2:H" & Cells(Rows.Count, 7).End(3).Row) = ""
 LR = Cells(Rows.Count, 3).End(3).Row
 For c = 2 To LR
  Cells(m + 2, 7) = Cells(c, 3)
  If Application.CountIf([C:C], Cells(c, 3)) = 1 Then
   Cells(m + 2, 8) = Cells(c, 5)
  Else
    If Cells(c, 1) = Cells(c + 1, 1) And Cells(c, 4) <> Cells(c + 1, 4) Then
     Cells(m + 2, 8) = Cells(c, 5) + Cells(c + 1, 5) & " e " & Cells(c + 2, 5)
    Else:
     If Cells(c, 5) = Cells(c + 1, 5) Then
      Cells(m + 2, 8) = Cells(c, 5) & " e " & Cells(c + 2, 5)
     Else: Cells(m + 2, 8) = Cells(c, 5) & ", " & Cells(c + 1, 5) & " e " & Cells(c + 2, 5)
     End If
  End If
  c = c + 2
  End If
  m = m + 1
 Next c
End Sub

obs.
1. o código acima é baseado na máscara dos registros da planilha que você disponibilizou e poderá retornar resultados indesejados se for empregado em planilha com a máscara diferente
2. com base nos seus critérios o resultado para o registro EE ADALGISA DE PAULA DUQUE é 18 e 16 e não 12, 6 e 16 como você colocou no resultado esperado
3. os últimos cinco itens que você colocou no resultado esperado não estão na sua tabela de dados, então não têm utilidade
4. o registro EE CONEGO JOAQUIM MONTEIRO está faltando no seu resultado esperado, por isso não pude conferir

 
Postado : 04/05/2016 2:02 pm
(@wilsonwasj)
Posts: 0
New Member
Topic starter
 

Olá Osvaldo..

Agradeço pelo código... Vai ser muito útil mesmo...

Na verdade Existem mais criterios, são cerca de 20 para cada linha... Então quando uso este codigo, que vc passou, não esta somando como no resultado que vc me mostrou.. Esta me voltando da forma que eu precisava. Estou usando seu codigo e fazendo manualmente para verificar se vai dar alguma inconsistencia.. Mas até agora todos os resultados
estão corretos...

Muito obrigado mesmo... :D :D :D :D :D :D :D :D :D :D :D :D :D :D

 
Postado : 02/09/2016 12:46 pm