Somando várias linhas no Excel

1

Suponha que eu tenha a seguinte tabela:

Gostariadeencontraronúmerototaldemaçãsvendidasnoprimeirodia,independentementedoclientevendido.

EstouumpoucofamiliarizadocomINDEX/MATCH,masnãotenhomuitacertezasobrecomoproceder.

EuentendoqueafunçãoSUMIFpodeserusadaparasomarapenasodiadesejado,masnãotenhocertezadecomosomarváriaslinhascomINDEX/MATCH.

Asaídaqueestouprocurandoéaseguinte:

Mas o mais importante, gostaria de saber como somar várias linhas específicas e, portanto, estou solicitando uma fórmula para B16 .

    
por fysh 04.03.2018 / 11:06

2 respostas

1

Se você tiver a opção de desarmar as células na coluna A e normalizá-las, então, um simples SUMIFS deve funcionar. Caso contrário, tente isto:

=SUMPRODUCT($C$2:$C$13,
1*($B$2:$B$13=$A16),
1*(ROW($A$2:$A$13)>=SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15)),
1*(ROW($A$2:$A$13)<SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15+1)))

Resultado:

╔════════╦════╦════╗
║  Day   ║ 1  ║ 2  ║
╠════════╬════╬════╣
║ Apple  ║ 60 ║ 90 ║
║ Orange ║  0 ║ 85 ║
║ Pear   ║ 75 ║  0 ║
╚════════╩════╩════╝

Fonte:

Modificada a fórmula encontrada aqui :

Explicação:

A parte principal é a função SMALL

SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15)

Ele cria uma matriz de números de linha para um intervalo especificado, em que as células que não contêm nada ( ="" ) têm um valor 100 a mais que o número da linha correspondente ( +100* ). Por outro lado, as células que falham na condição (isto é, células não vazias) só serão atribuídas aos seus números de linha. Essa matriz é passada para a função SMALL com B$15 como o segundo argumento, que diz para buscar o menor item kth na matriz.

Então, queremos somar as linhas em que a linha começa com o número do dia, que é o que essa parte faz:

1*(ROW($A$2:$A$13)>=SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15))

No entanto, também queremos restringir o total até a célula diretamente acima da próxima célula não vazia; daí, o operador < e B$15+1 (ou seja, (k + 1) th o menor item) na seguinte parte:

1*(ROW($A$2:$A$13)<SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15+1))
    
por 04.03.2018 / 12:11
0

Se você conseguir desmembrar as células do campo Day , de forma que o número do dia apareça em todas as linhas, uma Tabela dinâmica será de longe a maneira mais fácil de obter o resultado desejado:

    
por 04.03.2018 / 13:26