Fórmula do Excel: Preço fácil do pacote com SUMPRODUCT -

Índice

Fórmula genérica

=SUMPRODUCT(costs,--(range="x"))

Resumo

Para calcular o preço do pacote de produtos usando um "x" simples para incluir ou excluir um produto, você pode usar uma fórmula baseada na função SUMPRODUCT. No exemplo mostrado, a fórmula em D11 é:

=SUMPRODUCT($C$5:$C$9,--(D5:D9="x"))

Explicação

A função SUMPRODUCT multiplica intervalos ou matrizes e retorna a soma dos produtos. Isso parece chato, mas SUMPRODUCT é uma função elegante e versátil, que este exemplo ilustra muito bem.

Neste exemplo, SUMPRODUCT é configurado com dois arrays. A primeira matriz é a faixa que contém o preço do produto:

$C$5:$C$9

Observe que a referência é absoluta para evitar alterações conforme a fórmula é copiada à direita. Este intervalo avalia a seguinte matriz:

(99;69;129;119;49)

A segunda matriz é gerada com esta expressão:

--(D5:D9="x")

O resultado de D5: D9 = "x" é uma matriz de valores TRUE FALSE como este:

(TRUE;TRUE;FALSE;FALSE;FALSE)

O duplo negativo (-) converte esses valores TRUE FALSE em 1s e 0s:

(1;1;0;0;0)

Portanto, dentro do SUMPRODUCT temos:

=SUMPRODUCT((99;69;129;119;49),(1;1;0;0;0))

A função SUMPRODUCT multiplica os itens correspondentes em cada matriz juntos:

=SUMPRODUCT((99;69;0;0;0))

e retorna a soma dos produtos, 168 neste caso.

Efetivamente, a segunda matriz atua como um filtro para os valores da primeira matriz. Zeros na matriz2 cancelam itens na matriz1 e 1s na matriz2 permitem que os valores da matriz1 passem para o resultado final.

Com uma única matriz

SUMPRODUCT está configurado para aceitar vários arrays, mas você pode simplificar um pouco essa fórmula fornecendo um único array no início:

=SUMPRODUCT($C$5:$C$9*(D5:D9="x"))

A operação matemática (multiplicação) força automaticamente os valores TRUE FALSE na segunda expressão para uns e zeros, sem necessidade de um duplo negativo.

Artigos interessantes...