Precisa somar com base no ID

0

Eu tenho tabelas diferentes em diferentes planilhas do Excel e existe um valor de chave em todas as tabelas (ID do funcionário), preciso somar elementos em planilhas diferentes com base no ID do funcionário

Sheet 1                       Sheet 2

A   B                          A    B             
ID  Value                      ID   Value
1    100                       1    500

Eu preciso somar 100 + 500 com base, já que é o mesmo ID 1 de funcionário

    
por Wael Shehata 14.10.2016 / 21:44

2 respostas

0

O que você quer é a função sumif . SUMIF(Range, Criteris, [sum range])

A fórmula poderia ser assim: =SUMIF(Sheet2!A3:B5,Sheet1!A3,Sheet2!B3:B5)+B3

    
por 15.10.2016 / 07:50
0

Como diz o pat2015, há algumas perguntas que precisam ser respondidas antes que uma resposta apropriada possa ser dada.

Se os IDs não se repetirem e você quiser apenas exibir a soma em uma célula, você pode fazer um simples vlookup para cada tabela. Digamos que você coloque o ID que deseja procurar na célula A1 e, em seguida, coloque o seguinte onde deseja que a soma apareça:

=SUM(VLOOKUP(A1,Table1,2,0),VLOOKUP(A1,Table2,2,0))

E completo para todas as tabelas.

Sheet1!Table1

Não precisa ser usado, pois o Excel encontrará a tabela mesmo assim. Mas será necessário para uma referência absoluta.

Se você tiver várias entradas do mesmo ID em uma única tabela, elas serão perdidas. Se você quiser pegá-los também, sugiro usar o VBA. Se isso funciona para você.

editar

Se você tem, ou pode ter, várias entradas do mesmo ID em uma única tabela, o sumif sugerido funciona bem. Dois exemplos para três tabelas.

=SUM(SUMIF(Table1[ID],A1,Table1[Value]),SUMIF(Table2[ID],A1,Table2[Value]),SUMIF(Table3[ID],A1,Table3[Value]))

ou apenas adicione sumifs juntos

=SUMIF(Table1[ID],A1,Table1[Value])+SUMIF(Table2[ID],A1,Table2[Value])+SUMIF(Table3[ID],A1,Table3[Value])

Você pode usar a tabela inteira como intervalo, mas é melhor especificar qual coluna deseja pesquisar. Se você tem várias colunas e o valor que está procurando está presente em outras colunas, pode haver alguns resultados estranhos.

Nova solução combinada com o seu exemplo.

Eu usei uma macro para coletar todos os IDs e depois preencher uma tabela na folha de resultados. O código é assim:

    Sub CollectIDs()
    Dim i As Integer
    Dim K As Long, ar
    K = 1
    For Each ar In Array("A", "G", "K")
        For i = 1 To 10000
            If Worksheets("Building-1").Cells(i, ar).Value <> "" Then
                If IsNumeric(Worksheets("Building-1").Cells(i, ar).Value) Then
                    Worksheets("Result").Cells(K + 1, "A").Value = Worksheets("Building-1").Cells(i, ar).Value
                    K = K + 1
                End If
            End If
        Next i
    Next ar

    For Each ar In Array("A", "I")
        For i = 1 To 10000
            If Worksheets("Building-2").Cells(i, ar).Value <> "" Then
                If IsNumeric(Worksheets("Building-2").Cells(i, ar).Value) Then
                    Worksheets("Result").Cells(K + 1, "A").Value = Worksheets("Building-2").Cells(i, ar).Value
                    K = K + 1
                End If
            End If
        Next i
    Next ar
    Worksheets("Result").Range("Table1").RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
End Sub

Para que as alterações no código se adaptem ao documento, edite os nomes das Planilhas para ajustar as alterações e edite as Matrizes para ajustá-las à coluna contendo os IDs.
Por favor, não coloque nenhum outro número nessas colunas, como o código irá buscá-los como um ID.

Em seguida, na tabela de resultados, a coluna de valor contém o código:

=SUMIF(Table2[ID];A2;Table2[Value]) + SUMIF(Table3[ID];A2;Table3[Value]) + SUMIF(Table4[ID];A2;Table4[Value])+ SUMIF(Table5[ID];A2;Table5[Value]) + SUMIF(Table6[ID];A2;Table6[Value])

Esse é um SUMIF para cada tabela. Certifique-se de que isso esteja contendo os nomes certos para todas as tabelas, ou se você estiver usando intervalos, os intervalos certos, é claro.

Por favor, note!

Minhas configurações de idioma me forçam a usar ponto-e-vírgula (;) é a vírgula das vírgulas (,) na função. Altere isso para ajustar suas configurações.

Aqui está o meu exemplo, espero que atenda às suas necessidades.

link

    
por 15.10.2016 / 04:13