Fórmula genérica
=SUMPRODUCT(costs,--(range="x"))
Resumen
Para calcular el precio del paquete de productos usando una "x" simple para incluir o excluir un producto, puede usar una fórmula basada en la función SUMPRODUCT. En el ejemplo que se muestra, la fórmula en D11 es:
=SUMPRODUCT($C$5:$C$9,--(D5:D9="x"))
Explicación
La función SUMPRODUCTO multiplica rangos o matrices y devuelve la suma de productos. Esto suena aburrido, pero SUMPRODUCT es una función elegante y versátil, que este ejemplo ilustra muy bien.
En este ejemplo, SUMPRODUCT está configurado con dos matrices. La primera matriz es el rango que contiene los precios del producto:
$C$5:$C$9
Tenga en cuenta que la referencia es absoluta para evitar cambios, ya que la fórmula se copia a la derecha. Este rango se evalúa como la siguiente matriz:
(99;69;129;119;49)
La segunda matriz se genera con esta expresión:
--(D5:D9="x")
El resultado de D5: D9 = "x" es una matriz de valores VERDADERO FALSO como este:
(TRUE;TRUE;FALSE;FALSE;FALSE)
El doble negativo (-) convierte estos valores VERDADERO FALSO en 1 y 0:
(1;1;0;0;0)
Entonces, dentro de SUMPRODUCT tenemos:
=SUMPRODUCT((99;69;129;119;49),(1;1;0;0;0))
La función SUMPRODUCTO luego multiplica los elementos correspondientes en cada matriz juntos:
=SUMPRODUCT((99;69;0;0;0))
y devuelve la suma de productos, 168 en este caso.
Efectivamente, la segunda matriz actúa como un filtro para los valores de la primera matriz. Los ceros de la matriz2 cancelan los elementos de la matriz1, y los 1 de la matriz2 permiten que los valores de la matriz1 pasen al resultado final.
Con una sola matriz
SUMPRODUCT está configurado para aceptar múltiples matrices, pero puede simplificar un poco esta fórmula proporcionando una sola matriz al principio:
=SUMPRODUCT($C$5:$C$9*(D5:D9="x"))
La operación matemática (multiplicación) convierte automáticamente los valores VERDADERO FALSO en la segunda expresión a unos y ceros, sin necesidad de un doble negativo.