Para esse tipo de problema, ajuda pensar em termos de matrizes.
Se você puder obter uma matriz (lista) dos números em Valores (coluna D) onde Cartas (coluna B) é igual a "A" e Números tiver duplicatas removidas, você pode somar a matriz para obter a resposta.
Esta expressão:
(B$2:B$12=F2)
fornece uma matriz de valores True/False
com True
, sempre que a coluna B="A". Este aqui:
(C$2:C$12<>C$3:C$13)
fornece uma matriz de valores True/False
com True
sempre que uma célula na coluna C não for igual à célula a seguir. Como suas duplicatas estão em células sequenciais (comentário abaixo, se esse não for sempre o caso), essa matriz tem False
, em que as ocorrências extras de um valor são e, essencialmente, filtram as duplicatas. Multiplicando estas duas matrizes juntas:
(B$2:B$12=F2)*(C$2:C$12<>C$3:C$13)
converte valores de True/False
para 1s e 0s e fornece uma matriz com 1 nas posições que queremos estar na soma. Usando essa matriz como logical_test
em IF()
e coluna D como value_if_true
:
IF((B$2:B$12=F2)*(C$2:C$12<>C$3:C$13)>0,D$2:D$12)
retorna uma matriz dos valores na coluna D, onde havia um 1, intercalado com False
onde quer que houvesse um zero. Agora podemos apenas somar o array. Esta fórmula, preenchida a partir do G2, apresenta os resultados abaixo.
=SUM(IF((B$2:B$12=F2)*(C$2:C$12<>C$3:C$13)>0,D$2:D$12))
Note que esta é uma fórmula de matriz e deve ser digitada com CTRL Deslocar Enter .