Você poderia fazer algo assim:
=SUMPRODUCT($A$2:$A$11*($B$2:$B$11&$C$2:$C$11<>""))
A ideia é que a concatenação de B e C esteja em branco apenas se ambos estiverem em branco.
Eu tenho três colunas de dados - uma coluna de soma ( A ) e, em seguida, as duas colunas que formam a soma ( B e C ). Às vezes, apenas uma das colunas B e C é preenchida; ocasionalmente, as colunas B e C estão em branco.
Eu quero a coluna SUM A (ou seja, um total dos totais), somente quando houver dados nas colunas B e / ou C . Então, eu esperava que o seguinte funcionasse:
=SUMPRODUCT(--((B2:B10<>"")+(C2:C20<>"")),A2:A10)
Mas o problema é que, se houver dados em ambas as colunas B e C, a matriz formada a partir de (B2:B10<>"")+(C2:C10<>"") será 2 e a anterior -- não a converterá em TRUE (por exemplo, {1,1,0,1,0,1,1,1,0} + {1,0,1,1,0,1,1,0,1} = {2,1,1,2,0,2,2,1,1} ) e esse arranjo final é então multiplicado com os valores na coluna A , dobrando os valores 1, 4, 6 e 7.
Isso parece um comportamento estranho! Como faço para se comportar corretamente?!
Você poderia fazer algo assim:
=SUMPRODUCT($A$2:$A$11*($B$2:$B$11&$C$2:$C$11<>""))
A ideia é que a concatenação de B e C esteja em branco apenas se ambos estiverem em branco.
Aha - Eu precisava da função SIGN :
=SUMPRODUCT(A2:A10,SIGN((B2:B10<>"")+(C2:C10<>"")))
Ainda acho estranho que, no que diz respeito ao SUMPRODUCT, TRUE + TRUE = 2. E que 2 não apenas avalie como TRUE quando -- está em jogo.
Acho que você pode considerar =SUMIFS() function.
Sua condição pode ser reescrita como:
Como as 3 condições são mutuamente exclusivas, o SUMPRODUCT complicado é essencialmente =SUMIF(Condition 1)+SUMIF(Condition 2)+SUMIF(Condition 3) . Reescrito como SUMIFS :
=SUMIFS(A2:A10,B2:B10,"<>",C2:C10,"")+SUMIFS(A2:A10,B2:B10,"",C2:C10,"<>")+SUMIFS(A2:A10,B2:B10,"<>",C2:C10,"<>")
Em termos de desempenho, essa solução pode ser melhor do que usar SUMPRODUCT também se houver um grande número de linhas para resumir.