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))