![](https://cdn.wiki-base.com/6459371/excel_formula_easy_bundle_pricing_with_sumproduct__2.png.webp)
Formula generica
=SUMPRODUCT(costs,--(range="x"))
Sommario
Per calcolare il prezzo di un pacchetto di prodotti utilizzando una semplice "x" per includere o escludere un prodotto, puoi utilizzare una formula basata sulla funzione SUMPRODUCT. Nell'esempio mostrato, la formula in D11 è:
=SUMPRODUCT($C$5:$C$9,--(D5:D9="x"))
Spiegazione
La funzione SUMPRODUCT moltiplica insieme intervalli o matrici e restituisce la somma dei prodotti. Sembra noioso, ma SUMPRODUCT è una funzione elegante e versatile, che questo esempio illustra bene.
In questo esempio, SUMPRODUCT è configurato con due array. La prima matrice è la gamma che contiene i prezzi dei prodotti:
$C$5:$C$9
Nota che il riferimento è assoluto per evitare modifiche quando la formula viene copiata a destra. Questo intervallo restituisce il seguente array:
(99;69;129;119;49)
Il secondo array viene generato con questa espressione:
--(D5:D9="x")
Il risultato di D5: D9 = "x" è un array di valori TRUE FALSE come questo:
(TRUE;TRUE;FALSE;FALSE;FALSE)
Il doppio negativo (-) converte questi valori VERO FALSO in 1 e 0:
(1;1;0;0;0)
Quindi, all'interno di SUMPRODUCT abbiamo:
=SUMPRODUCT((99;69;129;119;49),(1;1;0;0;0))
La funzione SUMPRODUCT moltiplica quindi gli elementi corrispondenti in ogni array insieme:
=SUMPRODUCT((99;69;0;0;0))
e restituisce la somma dei prodotti, 168 in questo caso.
In effetti, il secondo array funge da filtro per i valori nel primo array. Gli zeri in array2 annullano gli elementi in array1 e gli 1 in array2 consentono ai valori di array1 di passare al risultato finale.
Con un unico array
SUMPRODUCT è impostato per accettare più array, ma puoi semplificare un po 'questa formula fornendo un singolo array all'inizio:
=SUMPRODUCT($C$5:$C$9*(D5:D9="x"))
L'operazione matematica (moltiplicazione) forza automaticamente i valori VERO FALSO nella seconda espressione a uno e zero, senza bisogno di un doppio negativo.