Formar planilha através de outras três


#1

Prezados, bom dia!
Tenho três planilhas que possuem duas colunas, uma com o nome e outra com um número de vezes.
As quantidades de linhas de cada planilha varia. Então desejo formar uma quarta planilha que não repita os itens iguais e sim faça a soma de todas iguais para não aparecer itens repetidos na planilha que está sendo formada. Ex.
Plan1
Rótulos Contagem
Fulano 44854
Beltrano 37769
Cabeçudo 16800

plan2
Ciclano 37547
Beltrano 33220
Fulano 18750

plan3
Beltrano 48650
Orelhudo 52000
Ciclano 16600
Narigudo 24488
Olhudo 53330

Três planilhas com quantidade de dados diferentes. A quarta planilha deverá ser formada da seguinte forma:
plan4
Fulano 44854+18750=63604
Beltrano 37769+33220+48650=119639
Cabeçudo 16800
Ciclano 37547+16600=54147
Orelhudo 52000
Narigudo 24488
Olhudo 53330

Alguém pode me ajudar?
Será que preciso fazer uma macro?
Ou tenho como fazer através de uma matriz?


#2

Boas @Paulo.Lebeis,

já tentas usar a formula?

SOMAR.SE(


#3

Bom dia colega @Paulo.Lebeis seria isso?

Somar.xlsm (10,6 KB)


#4

Obrigado pela ajuda, mas não é isso, visto que você já colocou a coluna A manualmente. Assim é simples, necessito que ele pegue os dados das duas colunas, sem repetir linha da coluna A com mesmo nome. Acho que somente com macro. Vou tentar com macro.

Abraço.


#5

Obrigado, mas Soma.se não resolve.

Abraço.


#6

@Paulo.Lebeis, criei o seguinte programa para a solução:

Public Sub Resultado()

    Sheets.Add After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    
    Dim Planilha        As Worksheet
    Dim Linha           As Long
    Dim LinhaResultado  As Long
    
    Application.ScreenUpdating = False
    
    For Each Planilha In ThisWorkbook.Sheets
        
        If Planilha.Index = ThisWorkbook.Sheets.Count Then Exit Sub
    
        For Linha = 1 To Planilha.Cells(1, 1).End(xlDown).Row
            
            If Planilha.Index = 1 Then
                
                ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Cells(Linha, 1) = Planilha.Cells(Linha, 1).Value2
                ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Cells(Linha, 2) = Planilha.Cells(Linha, 2).Value2
            
            Else
            
                For LinhaResultado = 1 To ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Cells(1, 1).End(xlDown).Row
                
                    If ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Cells(LinhaResultado, 1).Value2 = Planilha.Cells(Linha, 1).Value2 Then
                        
                        ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Cells(LinhaResultado, 2).Value2 = _
                            ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Cells(LinhaResultado, 2).Value2 + _
                            Planilha.Cells(Linha, 2).Value2
                        GoTo Proximo
                    
                    End If
                
                Next LinhaResultado
                
                ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Cells(1, 1).End(xlDown).Offset(1, 0).Value2 = _
                    Planilha.Cells(Linha, 1).Value2
                ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Cells(1, 1).End(xlDown).Offset(0, 1).Value2 = _
                    Planilha.Cells(Linha, 2).Value2
            
            End If
            
Proximo:
        Next Linha
    
    Next Planilha
    
    Application.ScreenUpdating = True
    
End Sub 

Acredito que serão necessárias pequenas adaptações à planilha real.

Espero que ajude.

Abraços.