Prima che esistessero funzioni come SUMIF() e SUMIFS(), SUMPRODUCT() era uno dei principali strumenti di Excel per gestire la logica condizionale. Gli analisti lo usavano per filtrare i dati, applicare criteri multipli e calcolare risultati ponderati molto prima che venissero introdotte funzioni condizionali dedicate.
Ancora oggi, SUMPRODUCT() gestisce scenari con cui le funzioni più recenti faticano, soprattutto quando occorre valutare insieme più condizioni, array o calcoli.
Nonostante ciò, è spesso trascurata o fraintesa. Molti sanno che esiste, ma non vanno oltre gli esempi di base.
In questo articolo imparerai a usare SUMPRODUCT() per calcoli condizionali e ponderati e a evitare gli errori più comuni, così da usarla con sicurezza nei modelli Excel reali.
Capire SUMPRODUCT()
SUMPRODUCT() è una funzione di Excel che moltiplica i valori corrispondenti in array e poi ne somma i risultati, permettendoti di eseguire calcoli complessi in un'unica formula. Anche se viene spesso associata ad analisi avanzate, il suo scopo originale era molto più pratico.
Concetti fondamentali e sintassi di base
La funzione SUMPRODUCT() in Excel prende due o più intervalli, moltiplica i valori corrispondenti e somma i risultati in un unico valore finale. Il suo scopo principale è combinare calcolo e aggregazione in una sola formula ed eliminare la necessità di colonne di supporto aggiuntive.
Questo significa che, indipendentemente da quanti array includi, SUMPRODUCT() restituisce sempre un solo risultato numerico.
Intervalli o array aggiuntivi da moltiplicare con array1
Opzionale
…
Puoi includere più array nella stessa formula
Tutti gli array devono allinearsi
Quando usi SUMPRODUCT(), tieni presente quanto segue:
Ogni array deve avere lo stesso numero di righe e colonne perché SUMPRODUCT() allinea gli elementi per posizione.
Se un array è più lungo o ha una forma diversa, la funzione non riesce ad abbinare correttamente i valori e può restituire l'errore #VALUE!.
Le celle vuote sono trattate come zeri.
Il testo è ignorato nei calcoli a meno che non sia usato in un'espressione logica.
Comportamento predefinito: moltiplicazione e somma
Per impostazione predefinita, SUMPRODUCT() moltiplica i valori corrispondenti di più array e poi somma i risultati. Questa moltiplicazione elemento per elemento seguita dalla somma è il modo in cui la funzione opera.
Per esempio, se abbiamo un semplice dataset con quantità e prezzi. Se la colonna Quantity contiene le quantità e la colonna Price contiene i prezzi, la formula seguente calcola il fatturato totale:
Dietro al risultato, Excel valuta ogni riga singolarmente e poi somma i risultati:
Riga 1: 2 × 50 = 100
Riga 2: 3 × 30 = 90
Riga 3: 1 × 20 = 20
Excel quindi somma quei valori: 100 + 90 + 20 = 210
Questo sostituisce la necessità di colonne di supporto che calcolino manualmente i totali per riga prima di sommarli. SUMPRODUCT() mantiene l'intero calcolo in un'unica formula per ridurre la proliferazione di formule e abbassa il rischio di errori di riferimento.
Questo comportamento predefinito di moltiplica-poi-somma abilita usi più avanzati, inclusa la logica condizionale e i calcoli ponderati.
Estendere SUMPRODUCT() oltre le basi
Ora che sai come funziona, vediamo alcune operazioni avanzate che SUMPRODUCT() può eseguire:
Aritmetica avanzata e uso degli operatori
SUMPRODUCT() può valutare espressioni aritmetiche complete, incluse addizione, sottrazione e divisione riga per riga prima di sommare i risultati.
Quando usi operatori aritmetici (*, +, -, /) all'interno di un'espressione, Excel valuta prima l'intero calcolo per ciascuna riga. Ad esempio, questa formula calcola il fatturato totale meno gli sconti:
Questo moltiplica Quantity × Price per ogni riga e sottrae il valore di Discount, quindi somma tutti i valori risultanti in un unico totale.
Usa espressioni aritmetiche e operatori in SUMPRODUCT(). Immagine dell'autore.
Le virgole però funzionano in modo diverso. Quando separi gli array con le virgole, ogni array è trattato come un input indipendente e SUMPRODUCT() moltiplica gli elementi corrispondenti tra quegli array prima di sommarli.
Per usare condizioni logiche, SUMPRODUCT() si affida all'operatore unario doppio --. Espressioni logiche come A2:A6>100 restituiscono valori TRUE o FALSE, che devono essere convertiti in 1 e 0 prima di poter partecipare all'aritmetica.
In questo esempio, solo le righe in cui la condizione è TRUE contribuiscono al totale.
Questa flessibilità negli operatori — combinare espressioni aritmetiche, test logici e accoppiamento di array — è ciò che rende SUMPRODUCT() preziosa per la modellazione, il reporting e gli scenari in cui altrimenti servirebbero colonne di supporto.
Calcoli condizionali e criteri logici
SUMPRODUCT() può valutare condizioni logiche direttamente all'interno di una formula. Queste condizioni generano array di valori TRUE e FALSE, che devono essere convertiti in numeri prima di poter partecipare ai calcoli.
Poniamo di voler sommare la Quantity per i prodotti nella categoria Fruit. In questo caso, se provi questa formula =SUMPRODUCT((D2:D6="Fruit"), B2:B6), il risultato è 0.
Perché? Perché un test logico come: D2:D6="Fruit" produce {TRUE, TRUE, FALSE, TRUE, FALSE}.
Questi sono valori logici, non numeri. E poiché SUMPRODUCT() esegue matematica numerica, quei valori logici devono essere convertiti in 1 e 0. L'operatore unario doppio -- esegue tale conversione:
Solo le righe contrassegnate con 1 sono incluse nel calcolo. Il risultato è 10, che è la quantità totale per i prodotti Fruit.
Usa il doppio unario in SUMPRODUCT() in Excel. Immagine dell'autore.
Gestire criteri multipli (logica AND/OR)
SUMPRODUCT() gestisce più condizioni usando la logica AND e OR. Vediamo come:
Logica AND: tutte le condizioni devono essere soddisfatte
Per applicare la logica AND, le condizioni si moltiplicano usando *. Poiché solo 1 × 1 fa 1, una riga è inclusa solo quando ogni condizione è TRUE:
=SUMPRODUCT(--(A2:A10>50)* --(B2:B10<100)* C2:C10)Offerto da
Puoi anche separare gli array con le virgole. Per impostazione predefinita, SUMPRODUCT() moltiplica gli array separati da virgole. Ma * rende più evidente la logica AND.
=SUMPRODUCT(--(A2:A10>50), --(B2:B10<100), C2:C10)Offerto da
In questo esempio, i valori della colonna C sono sommati solo quando:
La colonna A è maggiore di 50
La colonna B è minore di 100
Se una delle condizioni fallisce, la riga valuta a 0 ed è esclusa.
Logica OR: può essere soddisfatta qualsiasi condizione
La logica OR si crea aggiungendo le condizioni con +. Se qualsiasi condizione è TRUE, la riga contribuisce al totale:
=SUMPRODUCT(--((A2:A10>50)+(B2:B10<100)), C2:C10)Offerto da
Qui, le righe sono incluse quando almeno una condizione è TRUE. L'addizione può produrre valori maggiori di 1, ma il doppio unario -- converte qualsiasi risultato diverso da zero in 1, assicurando che ogni riga sia conteggiata una sola volta.
Applica la logica AND e OR con SUMPRODUCT(). Immagine dell'autore.
Perché SUMPRODUCT() è spesso preferita a SUMIFS()
Sebbene SUMIFS() gestisca bene più condizioni AND, non può valutare nativamente la logica OR o schemi più complessi quando le condizioni si estendono su più colonne o mescolano criteri numerici e testuali.
SUMPRODUCT() eccelle in scenari come:
Applicare la logica OR tra colonne
Combinare soglie numeriche con condizioni testuali
Creare filtri multicolonna senza colonne di supporto
Questa flessibilità rende SUMPRODUCT() una scelta affidabile per filtri avanzati, modellazione e reporting in cui la logica condizionale va oltre le regole standard di SUMIFS().
Tecniche analitiche applicate con SUMPRODUCT()
SUMPRODUCT() non è solo per calcoli semplici; gestisce anche analisi complesse.
Applicazioni con criteri su righe e colonne
SUMPRODUCT() può applicare condizioni contemporaneamente su righe e colonne. Quindi è più semplice lavorare con dati a matrice o a doppia entrata.
Invece di restituire un solo valore come INDEX/MATCH, può valutare più intersezioni contemporaneamente e restituire un totale combinato.
Questo permette a SUMPRODUCT() di agire come una ricerca bidirezionale dinamica senza colonne di supporto o formule di ricerca separate.
Supponiamo di avere una matrice di vendite per prodotto (righe) e regione (colonne), e di voler calcolare le vendite totali per Apple e Banana nelle regioni North ed East.
Per questo userai la formula seguente:
=SUMPRODUCT(
B2:E4 *
((A2:A4="Apple")+(A2:A4="Banana")) *
((B1:E1="North")+(B1:E1="East"))
)Offerto da
SUMPRODUCT() gestisce la moltiplicazione in matrice. Immagine dell'autore.
In questa formula:
B2:E4 contiene i valori di vendita
(A2:A4="Apple") + (A2:A4="Banana") crea un filtro verticale sulle righe
(B1:E1="North") + (B1:E1="East") crea un filtro orizzontale sulle colonne
Le righe e le colonne che soddisfano i criteri valutano a 1. Tutte le altre a 0. Ogni valore nella matrice delle vendite è moltiplicato per le condizioni della propria riga e colonna.
Solo le celle che soddisfano entrambe le condizioni restano diverse da zero.
In questo esempio:
Apple (North + East): 120 + 110
Banana (North + East): 70 + 85
Totale: 385
Questo schema funziona per qualsiasi dataset bidimensionale in cui occorre applicare contemporaneamente più condizioni su righe e colonne, come:
Prodotto × regione
Anno × categoria
Reparto × tipologia di costo
In questi scenari, SUMPRODUCT() offre più flessibilità rispetto alle funzioni di ricerca tradizionali ed evita la complessità di formule annidate.
Calcoli di media ponderata
Le medie ponderate sono un uso naturale per SUMPRODUCT() perché il calcolo stesso segue il comportamento predefinito della funzione: moltiplicare i valori per i pesi e poi sommarli.
La formula standard della media ponderata è così:
(Somma di Punteggio × Peso) ÷ (Somma dei Pesi)Offerto da
Ma SUMPRODUCT() semplifica il tutto gestendo moltiplicazione e somma in un solo passaggio. Invece di creare colonne di supporto, puoi calcolare direttamente il totale ponderato e dividerlo per la somma dei pesi:
=SUMPRODUCT(values, weights) / SUM(weights)Offerto da
Per esempio, per calcolare la media ponderata dei corsi di uno studente, puoi usare la formula seguente:
Con questo schema, solo le righe che soddisfano la condizione contribuiscono sia al totale ponderato sia al peso totale. Questo mantiene il calcolo accurato senza ristrutturare i dati o aggiungere colonne di supporto.
Poiché le medie ponderate si basano su moltiplicazione riga per riga prima della somma, SUMPRODUCT() è spesso lo strumento più diretto e flessibile per modelli di valutazione, pesi di portafoglio e scoring delle performance.
Applicazioni avanzate e scenari complessi
Uno dei maggiori punti di forza di SUMPRODUCT() è la facilità con cui si combina con altre funzioni di Excel. Poiché valuta i calcoli riga per riga, può trasformare funzioni testuali, risultati di ricerche e test logici in input numerici per analisi flessibili.
Vediamo come.
Corrispondenze parziali di testo usando SEARCH() con SUMPRODUCT()
Per trovare testo che contiene una parola o frase, abbina SUMPRODUCT() a SEARCH() e ISNUMBER():
=SUMPRODUCT(--ISNUMBER(SEARCH("Apple", A2:A5)), B2:B5)Offerto da
In questa formula:
SEARCH() restituisce un numero quando trova una corrispondenza
ISNUMBER() converte le corrispondenze in TRUE/FALSE
-- converte quei valori in 1 e 0
Solo le righe contenenti "Apple" contribuiscono al totale.
Combinare SUMPRODUCT() con SEARCH(). Immagine dell'autore.
Corrispondenza case-sensitive usando EXACT() con SUMPRODUCT()
Per impostazione predefinita, i confronti di testo in Excel non fanno distinzione tra maiuscole e minuscole. Quando il case conta, puoi usare EXACT() dentro SUMPRODUCT() così:
=SUMPRODUCT(--EXACT(A2:A5,"Apple"), B2:B5)Offerto da
Questo garantisce che nel calcolo sia incluso solo il testo che corrisponde esattamente, inclusa la distinzione tra maiuscole e minuscole.
Combinare SUMPRODUCT() con EXACT(). Immagine dell'autore.
Usare VLOOKUP() con SUMPRODUCT()
SUMPRODUCT() può anche valutare risultati di ricerca come parte della sua logica. Combinata con VLOOKUP(), permette calcoli condizionali basati su valori archiviati in una tabella separata:
=SUMPRODUCT(
(VLOOKUP(A2:A5, D2:E5, 2, FALSE)="Fruit") *
B2:B5
)Offerto da
Qui, VLOOKUP() recupera la categoria per ciascun prodotto e SUMPRODUCT() include solo le righe che corrispondono alla condizione specificata. Questo approccio evita colonne di supporto e supporta un filtraggio basato su ricerca più flessibile rispetto alle formule SUMIF() tradizionali.
Combinare SUMPRODUCT() con VLOOKUP(). Immagine dell'autore.
Contare i valori univoci usando COUNTIF() con SUMPRODUCT()
Puoi anche usare SUMPRODUCT() con COUNTIF() per contare i valori unici in questo modo:
Combinare SUMPRODUCT() con COUNTIF(). Immagine dell'autore.
In questa formula, i valori duplicati condividono pesi frazionari che sommano a 1, così ogni elemento unico è contato una sola volta. Ecco perché il risultato è 3.
Anche se esistono funzioni più recenti, questa tecnica è ancora utile nelle versioni più vecchie di Excel o in modelli di array complessi.
Risoluzione dei problemi, ottimizzazione e buone pratiche
Ora che sai come e dove usare SUMPRODUCT(), ecco alcune difficoltà che potresti incontrare e come risolverle:
Gestione degli errori e problemi comuni
La maggior parte degli errori di SUMPRODUCT() deriva da piccoli problemi strutturali più che da logica errata. Quando una formula restituisce 0, un totale imprevisto o un errore, di solito è facile isolare il problema:
Dimensioni degli array non corrispondenti
Ogni array usato in SUMPRODUCT() deve avere lo stesso numero di righe e colonne. Se un intervallo è più lungo o più largo degli altri, la formula non può essere valutata correttamente.
Controllo rapido: verifica che tutti gli intervalli di riferimento inizino e finiscano sulle stesse righe e colonne.
Testo inaspettato o caratteri nascosti
SUMPRODUCT() esegue matematica numerica. Se un intervallo sembra numerico ma contiene spazi o testo, il calcolo può restituire risultati errati o zero.
Soluzione rapida: usa TRIM() per rimuovere gli spazi extra o incapsula i valori con -- per forzare la conversione numerica quando appropriato.
Parentesi fuori posto
Le parentesi controllano l'ordine di valutazione. Una parentesi mancante o fuori posto può far applicare una condizione in modo errato o per nulla.
Soluzione rapida: raggruppa chiaramente ogni test logico prima di combinarlo con l'aritmetica o altre condizioni.
Testare la logica intermedia passo dopo passo
Uno dei modi più rapidi per effettuare il debug di una formula SUMPRODUCT() è valutare i singoli componenti.
Ecco come puoi fare:
Evidenzia una parte della formula, ad esempio (A2:A10>50)
Premi F9
Controlla l'output
Una condizione “sana” restituisce un array pulito di valori TRUE e FALSE o di 1 e 0 se convertiti. Se vedi errori o risultati imprevisti, quel segmento è la fonte del problema.
Flusso pratico di debug
Quando una formula SUMPRODUCT() non si comporta come previsto:
Verifica che le dimensioni degli array corrispondano
Conferma che gli intervalli numerici contengano solo numeri
Prova ogni condizione in modo indipendente
Ricostruisci la formula gradualmente
Questo approccio in genere risolve i problemi rapidamente senza riscrivere l'intera formula o aggiungere colonne di supporto.
Ottimizzazione delle prestazioni
SUMPRODUCT() valuta ogni cella in ciascun array di riferimento, quindi la struttura della formula ha un impatto diretto sulle prestazioni in cartelle di lavoro grandi. Alcune scelte possono però prevenire rallentamenti:
Limita gli intervalli di calcolo
Evita i riferimenti a colonna intera come A:A. Restringi invece le formule all'intervallo minimo necessario: A2:A500.
Intervalli più piccoli riducono il numero di celle che SUMPRODUCT() deve elaborare e migliorano la velocità di ricalcolo.
Semplifica le espressioni logiche
Ogni test logico dentro SUMPRODUCT() è valutato riga per riga. Quindi, prova a combinare o snellire le condizioni dove possibile, perché ciò riduce il numero totale di operazioni.
Se due condizioni possono essere espresse come una regola più pulita, le prestazioni migliorano senza cambiare i risultati.
Usa tabelle strutturate o intervalli dinamici con nome
Le tabelle di Excel e gli intervalli dinamici con nome si adattano automaticamente all'aumentare dei dati mantenendo gli intervalli strettamente delimitati. Questo preserva le prestazioni senza dover modificare le formule quando i dataset crescono.
Fai attenzione ad array molto grandi
Ogni array e condizione aggiuntiva aumenta il carico di calcolo. Nei modelli di grandi dimensioni, evita criteri non necessari e rimuovi gli array che non influiscono direttamente sul risultato.
Lavorare con gli array dinamici di Excel 365
In Excel 365, SUMPRODUCT() non produce risultati “spilled”, ma funziona in modo affidabile con array “spilled” creati da funzioni come FILTER() o UNIQUE(). Questo ti permette di combinare output da array dinamici con SUMPRODUCT() mantenendo i calcoli stabili e prevedibili.
Per modelli grandi e ricchi di spill, valuta se una funzione di array dinamico può sostituire parte della logica. Ma quando servono moltiplicazioni riga per riga e pesi condizionali, SUMPRODUCT() è l'opzione migliore.
Confrontare SUMPRODUCT() con funzioni alternative
SUMPRODUCT() si sovrappone a diverse funzioni di Excel, ma risolve i problemi in modo diverso. Vediamo come:
SUMPRODUCT() vs. SUMIF() / SUMIFS()
SUMIF() e SUMIFS() sono veloci ed efficienti per condizioni semplici. Danno il meglio quando:
I criteri sono semplici
Le corrispondenze sono esatte
La logica è strettamente basata su AND
SUMPRODUCT() sacrifica un po' di velocità per la flessibilità. È più adatta quando i calcoli richiedono:
Corrispondenze parziali di testo
Logica OR o condizioni miste
Criteri calcolati invece di intervalli statici
Logica complessa senza colonne di supporto
Per dataset grandi con regole semplici, SUMIFS() è di solito più veloce. Ma quando precisione e controllo contano più della pura velocità, SUMPRODUCT() è la scelta migliore.
SUMPRODUCT() vs. formule di array classiche
Le formule di array tradizionali eseguono molti degli stessi calcoli, ma richiedono Ctrl+Shift+Enter (CSE) e possono essere più difficili da mantenere.
SUMPRODUCT() evita del tutto CSE e si comporta come una funzione standard di Excel. Questo rende le formule più facili da leggere, modificare e condividere in ambienti collaborativi o aziendali dove gli utenti potrebbero non conoscere le formule di array.
SUMPRODUCT() vs. funzioni moderne di array dinamici
Funzioni più recenti come FILTER(), UNIQUE() e BYROW() sono ottime per restituire risultati “spilled”, rimodellare i dati e produrre elenchi o tabelle visibili.
Ma SUMPRODUCT() resta preziosa quando:
Ti serve un solo risultato numerico
La logica deve restare contenuta in una cella
I calcoli dipendono da moltiplicazioni e pesature riga per riga
Conta la compatibilità con versioni precedenti
Gli array dinamici spesso integrano SUMPRODUCT() più che sostituirla, per esempio generando array filtrati che SUMPRODUCT() poi valuta.
Quando SUMPRODUCT() è la scelta giusta
Usa SUMPRODUCT() quando hai bisogno di:
Totali condizionali con logica complessa
Condizioni OR o criteri calcolati
Calcoli ponderati senza colonne di supporto
Un'unica cella di risultato stabile
Funzione
Caso d'uso ideale
Punti di forza
Limitazioni
SUMPRODUCT()
Calcoli condizionali complessi che restituiscono un singolo numero
Logica flessibile
Condizioni OR
Calcoli ponderati
Nessuna colonna di supporto
Più lenta su intervalli molto grandi
SUMIF() / SUMIFS()
Totali condizionali semplici
Veloci
Efficienti
Logica limitata
Nessuna condizione OR
Formule di array classiche
Calcoli avanzati in modelli Excel più vecchi
Flessibili
Richiedono Ctrl+Shift+Enter
Più difficili da mantenere
FILTER()
Restituire elenchi o tabelle filtrate
Risultati dinamici
Logica leggibile
Non pensata per matematica ponderata
UNIQUE()
Estrarre valori distinti
Semplice
Veloce
Nessuna logica di calcolo
BYROW() / LAMBDA
Logica personalizzata a livello di riga
Altamente flessibili
Pattern moderni
Impostazione più complessa
INDEX MATCH()
Ricerche a valore singolo
Precise
Efficienti
Restituisce un solo valore
Non aggrega
Implementazione tra piattaforme
La logica alla base di SUMPRODUCT(): filtrare, moltiplicare, poi sommare, è coerente tra gli strumenti. Ciò che cambia è come ogni piattaforma gestisce valori logici e array.
In Excel, le espressioni logiche restituiscono TRUE e FALSE, che devono essere convertiti esplicitamente in 1 e 0 usando il doppio unario -- o una coercizione numerica. Senza questa conversione, i calcoli possono restituire risultati imprevisti.
Google Sheets gestisce automaticamente questa conversione. I valori logici sono trattati come numerici (TRUE = 1, FALSE = 0), quindi le formule SUMPRODUCT() possono funzionare senza operatori aggiuntivi.
Concettualmente, la logica è identica. La differenza sta solo nel fatto che la conversione numerica sia implicita o esplicita.
Tradurre la logica di SUMPRODUCT() in Python
Lo stesso schema si applica in strumenti basati su Python come NumPy o pandas, anche se la sintassi è diversa.
In Python, le condizioni sono valutate riga per riga e producono array booleani (True e False). Questi valori booleani si comportano già come 1 e 0 nei calcoli, eliminando il passaggio di conversione.
Il flusso concettuale resta lo stesso:
Valutare una condizione
Creare una maschera booleana
Moltiplicare i valori per quella maschera
Sommarne i risultati
Considerazioni per team multipiattaforma
Se tu o il tuo team lavorate tra Excel, Google Sheets e Python, allineatevi su alcuni comportamenti chiave:
La logica booleana è il linguaggio comune: tutte le piattaforme usano una logica TRUE/FALSE che può essere trattata come maschere numeriche.
Le maschere sostituiscono le colonne di supporto: Excel usa --(condizione). Python usa direttamente maschere booleane.
Le regole di confronto del testo differiscono: in Excel funzioni come SEARCH() non distinguono tra maiuscole e minuscole per impostazione predefinita, mentre in Python il confronto del testo può essere case-sensitive a seconda della configurazione.
I valori mancanti si comportano in modo diverso: in Excel le celle vuote e i valori NaN in Python posono influire sui risultati se non gestiti in modo coerente.
Su tutte le piattaforme, l'idea chiave resta la stessa: SUMPRODUCT() rappresenta uno schema di calcolo riutilizzabile.
Considerazioni finali
Se vuoi migliorare con SUMPRODUCT(), prendi un report reale che già usi e ricostruisci una formula complessa senza colonne di supporto. Così capirai lo schema e vedrai dove SUMPRODUCT() può inserirsi nel tuo flusso di lavoro.
Se vuoi approfondire, dai un'occhiata al percorso di competenze Data Analysis with Excel Power Tools per capire come funzioni come SUMPRODUCT() si inseriscono in flussi di lavoro analitici più ampi.
Sono una content strategist: mi piace semplificare argomenti complessi. Ho aiutato aziende come Splunk, Hackernoon e Tiiny Host a creare contenuti coinvolgenti e informativi per il loro pubblico.
SUMPRODUCT() - Domande frequenti
In che modo SUMPRODUCT() ignora i valori di testo quando somma i numeri?⌄
SUMPRODUCT() non gestisce automaticamente i valori di testo. Quindi, il testo deve essere convertito in zero prima del calcolo. Usa IFERROR() per convertire tutti i valori non numerici in zero.
No. I caratteri jolly come * e ? non sono supportati direttamente. Devi usare funzioni come LEFT(), RIGHT() o FIND() all'interno di SUMPRODUCT() per simulare il comportamento dei jolly.
Come può SUMPRODUCT() selezionare dinamicamente le colonne?⌄
Puoi rendere SUMPRODUCT() dinamica usando INDEX() con MATCH() per definire le colonne di inizio e fine in base a celle di input.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Prima che esistessero funzioni come
SUMIF()eSUMIFS(),SUMPRODUCT()era uno dei principali strumenti di Excel per gestire la logica condizionale. Gli analisti lo usavano per filtrare i dati, applicare criteri multipli e calcolare risultati ponderati molto prima che venissero introdotte funzioni condizionali dedicate.Ancora oggi,
SUMPRODUCT()gestisce scenari con cui le funzioni più recenti faticano, soprattutto quando occorre valutare insieme più condizioni, array o calcoli.Nonostante ciò, è spesso trascurata o fraintesa. Molti sanno che esiste, ma non vanno oltre gli esempi di base.
In questo articolo imparerai a usare
SUMPRODUCT()per calcoli condizionali e ponderati e a evitare gli errori più comuni, così da usarla con sicurezza nei modelli Excel reali.Capire SUMPRODUCT()
SUMPRODUCT()è una funzione di Excel che moltiplica i valori corrispondenti in array e poi ne somma i risultati, permettendoti di eseguire calcoli complessi in un'unica formula. Anche se viene spesso associata ad analisi avanzate, il suo scopo originale era molto più pratico.Concetti fondamentali e sintassi di base
La funzione
SUMPRODUCT()in Excel prende due o più intervalli, moltiplica i valori corrispondenti e somma i risultati in un unico valore finale. Il suo scopo principale è combinare calcolo e aggregazione in una sola formula ed eliminare la necessità di colonne di supporto aggiuntive.Questo significa che, indipendentemente da quanti array includi,
SUMPRODUCT()restituisce sempre un solo risultato numerico.La sintassi di
SUMPRODUCT()è:Ecco una scomposizione di questa sintassi:
Elemento
Descrizione
Note
array1Il primo intervallo o array usato nel calcolo
Obbligatorio
[array2]Intervalli o array aggiuntivi da moltiplicare con
array1Opzionale
…Puoi includere più array nella stessa formula
Tutti gli array devono allinearsi
Quando usi
SUMPRODUCT(), tieni presente quanto segue:Ogni array deve avere lo stesso numero di righe e colonne perché
SUMPRODUCT()allinea gli elementi per posizione.Se un array è più lungo o ha una forma diversa, la funzione non riesce ad abbinare correttamente i valori e può restituire l'errore
#VALUE!.Le celle vuote sono trattate come zeri.
Il testo è ignorato nei calcoli a meno che non sia usato in un'espressione logica.
Comportamento predefinito: moltiplicazione e somma
Per impostazione predefinita,
SUMPRODUCT()moltiplica i valori corrispondenti di più array e poi somma i risultati. Questa moltiplicazione elemento per elemento seguita dalla somma è il modo in cui la funzione opera.Per esempio, se abbiamo un semplice dataset con quantità e prezzi. Se la colonna
Quantitycontiene le quantità e la colonnaPricecontiene i prezzi, la formula seguente calcola il fatturato totale:SUMPRODUCT() in Excel. Immagine dell'autore.
Dietro al risultato, Excel valuta ogni riga singolarmente e poi somma i risultati:
Excel quindi somma quei valori: 100 + 90 + 20 = 210
Questo sostituisce la necessità di colonne di supporto che calcolino manualmente i totali per riga prima di sommarli.
SUMPRODUCT()mantiene l'intero calcolo in un'unica formula per ridurre la proliferazione di formule e abbassa il rischio di errori di riferimento.Questo comportamento predefinito di moltiplica-poi-somma abilita usi più avanzati, inclusa la logica condizionale e i calcoli ponderati.
Estendere SUMPRODUCT() oltre le basi
Ora che sai come funziona, vediamo alcune operazioni avanzate che
SUMPRODUCT()può eseguire:Aritmetica avanzata e uso degli operatori
SUMPRODUCT()può valutare espressioni aritmetiche complete, incluse addizione, sottrazione e divisione riga per riga prima di sommare i risultati.Quando usi operatori aritmetici (
*,+,-,/) all'interno di un'espressione, Excel valuta prima l'intero calcolo per ciascuna riga. Ad esempio, questa formula calcola il fatturato totale meno gli sconti:Questo moltiplica
Quantity×Priceper ogni riga e sottrae il valore diDiscount, quindi somma tutti i valori risultanti in un unico totale.Usa espressioni aritmetiche e operatori in SUMPRODUCT(). Immagine dell'autore.
Le virgole però funzionano in modo diverso. Quando separi gli array con le virgole, ogni array è trattato come un input indipendente e
SUMPRODUCT()moltiplica gli elementi corrispondenti tra quegli array prima di sommarli.Per usare condizioni logiche,
SUMPRODUCT()si affida all'operatore unario doppio--. Espressioni logiche comeA2:A6>100restituiscono valoriTRUEoFALSE, che devono essere convertiti in 1 e 0 prima di poter partecipare all'aritmetica.Il doppio unario esegue quella conversione:
In questo esempio, solo le righe in cui la condizione è
TRUEcontribuiscono al totale.Questa flessibilità negli operatori — combinare espressioni aritmetiche, test logici e accoppiamento di array — è ciò che rende
SUMPRODUCT()preziosa per la modellazione, il reporting e gli scenari in cui altrimenti servirebbero colonne di supporto.Calcoli condizionali e criteri logici
SUMPRODUCT()può valutare condizioni logiche direttamente all'interno di una formula. Queste condizioni generano array di valoriTRUEeFALSE, che devono essere convertiti in numeri prima di poter partecipare ai calcoli.Poniamo di voler sommare la
Quantityper i prodotti nella categoriaFruit. In questo caso, se provi questa formula=SUMPRODUCT((D2:D6="Fruit"), B2:B6), il risultato è0.Perché? Perché un test logico come:
D2:D6="Fruit"produce{TRUE, TRUE, FALSE, TRUE, FALSE}.Questi sono valori logici, non numeri. E poiché
SUMPRODUCT()esegue matematica numerica, quei valori logici devono essere convertiti in1e0. L'operatore unario doppio--esegue tale conversione:Questo converte i valori logici in numeri così:
Qui,
TRUEdiventa1eFALSEdiventa0. OraSUMPRODUCT()può moltiplicare correttamente.Ecco come calcola:
Solo le righe contrassegnate con
1sono incluse nel calcolo. Il risultato è10, che è la quantità totale per i prodottiFruit.Usa il doppio unario in SUMPRODUCT() in Excel. Immagine dell'autore.
Gestire criteri multipli (logica AND/OR)
SUMPRODUCT()gestisce più condizioni usando la logicaANDeOR. Vediamo come:Logica AND: tutte le condizioni devono essere soddisfatte
Per applicare la logica
AND, le condizioni si moltiplicano usando*. Poiché solo1 × 1fa1, una riga è inclusa solo quando ogni condizione èTRUE:Puoi anche separare gli array con le virgole. Per impostazione predefinita,
SUMPRODUCT()moltiplica gli array separati da virgole. Ma*rende più evidente la logica AND.In questo esempio, i valori della colonna C sono sommati solo quando:
Se una delle condizioni fallisce, la riga valuta a
0ed è esclusa.Logica OR: può essere soddisfatta qualsiasi condizione
La logica OR si crea aggiungendo le condizioni con
+. Se qualsiasi condizione èTRUE, la riga contribuisce al totale:Qui, le righe sono incluse quando almeno una condizione è
TRUE. L'addizione può produrre valori maggiori di1, ma il doppio unario--converte qualsiasi risultato diverso da zero in1, assicurando che ogni riga sia conteggiata una sola volta.Applica la logica AND e OR con SUMPRODUCT(). Immagine dell'autore.
Perché SUMPRODUCT() è spesso preferita a SUMIFS()
Sebbene
SUMIFS()gestisca bene più condizioni AND, non può valutare nativamente la logica OR o schemi più complessi quando le condizioni si estendono su più colonne o mescolano criteri numerici e testuali.SUMPRODUCT()eccelle in scenari come:Questa flessibilità rende
SUMPRODUCT()una scelta affidabile per filtri avanzati, modellazione e reporting in cui la logica condizionale va oltre le regole standard diSUMIFS().Tecniche analitiche applicate con SUMPRODUCT()
SUMPRODUCT()non è solo per calcoli semplici; gestisce anche analisi complesse.Applicazioni con criteri su righe e colonne
SUMPRODUCT()può applicare condizioni contemporaneamente su righe e colonne. Quindi è più semplice lavorare con dati a matrice o a doppia entrata.Invece di restituire un solo valore come INDEX/MATCH, può valutare più intersezioni contemporaneamente e restituire un totale combinato.
Questo permette a
SUMPRODUCT()di agire come una ricerca bidirezionale dinamica senza colonne di supporto o formule di ricerca separate.Supponiamo di avere una matrice di vendite per prodotto (righe) e regione (colonne), e di voler calcolare le vendite totali per Apple e Banana nelle regioni North ed East.
Per questo userai la formula seguente:
SUMPRODUCT() gestisce la moltiplicazione in matrice. Immagine dell'autore.
In questa formula:
B2:E4contiene i valori di vendita(A2:A4="Apple") + (A2:A4="Banana")crea un filtro verticale sulle righe(B1:E1="North") + (B1:E1="East")crea un filtro orizzontale sulle colonneLe righe e le colonne che soddisfano i criteri valutano a
1. Tutte le altre a0. Ogni valore nella matrice delle vendite è moltiplicato per le condizioni della propria riga e colonna.Solo le celle che soddisfano entrambe le condizioni restano diverse da zero.
In questo esempio:
Totale: 385
Questo schema funziona per qualsiasi dataset bidimensionale in cui occorre applicare contemporaneamente più condizioni su righe e colonne, come:
In questi scenari,
SUMPRODUCT()offre più flessibilità rispetto alle funzioni di ricerca tradizionali ed evita la complessità di formule annidate.Calcoli di media ponderata
Le medie ponderate sono un uso naturale per
SUMPRODUCT()perché il calcolo stesso segue il comportamento predefinito della funzione: moltiplicare i valori per i pesi e poi sommarli.La formula standard della media ponderata è così:
Ma
SUMPRODUCT()semplifica il tutto gestendo moltiplicazione e somma in un solo passaggio. Invece di creare colonne di supporto, puoi calcolare direttamente il totale ponderato e dividerlo per la somma dei pesi:Per esempio, per calcolare la media ponderata dei corsi di uno studente, puoi usare la formula seguente:
Ecco come Excel valuta ciascuna componente:
Il totale ponderato è
85, che diventa la media finale.Calcolo della media ponderata con SUMPRODUCT. Immagine dell'autore.
Filtrare o modificare i pesi con criteri
Dove
SUMPRODUCT()diventa più utile è quando i pesi devono essere regolati dinamicamente.Per esempio, puoi escludere alcuni corsi o applicare condizioni al calcolo:
La formula divide il totale ponderato (numeratore) per il peso totale (denominatore).
Calcolo della media ponderata con SUMPRODUCT. Immagine dell'autore.
In questa formula:
(D2:D6<>"Optional")restituisce{TRUE, TRUE, FALSE, TRUE, FALSE}--(D2:D6<>"Optional")converte in{1, 1, 0, 1, 0}Numeratore:
(85×0,25×1) + (90×0,25×1) + (78×0,20×0) + (88×0,20×1) + (92×0,10×0) = 21,25 + 22,50 + 0 + 17,60 + 0 = 61,35Denominatore:
(0,25×1) + (0,25×1) + (0,20×0) + (0,20×1) + (0,10×0) = 0,70Con questo schema, solo le righe che soddisfano la condizione contribuiscono sia al totale ponderato sia al peso totale. Questo mantiene il calcolo accurato senza ristrutturare i dati o aggiungere colonne di supporto.
Poiché le medie ponderate si basano su moltiplicazione riga per riga prima della somma,
SUMPRODUCT()è spesso lo strumento più diretto e flessibile per modelli di valutazione, pesi di portafoglio e scoring delle performance.Applicazioni avanzate e scenari complessi
Uno dei maggiori punti di forza di
SUMPRODUCT()è la facilità con cui si combina con altre funzioni di Excel. Poiché valuta i calcoli riga per riga, può trasformare funzioni testuali, risultati di ricerche e test logici in input numerici per analisi flessibili.Vediamo come.
Corrispondenze parziali di testo usando SEARCH() con SUMPRODUCT()
Per trovare testo che contiene una parola o frase, abbina
SUMPRODUCT()aSEARCH()eISNUMBER():In questa formula:
SEARCH()restituisce un numero quando trova una corrispondenzaISNUMBER()converte le corrispondenze inTRUE/FALSE--converte quei valori in1e0Solo le righe contenenti "Apple" contribuiscono al totale.
Combinare SUMPRODUCT() con SEARCH(). Immagine dell'autore.
Corrispondenza case-sensitive usando EXACT() con SUMPRODUCT()
Per impostazione predefinita, i confronti di testo in Excel non fanno distinzione tra maiuscole e minuscole. Quando il case conta, puoi usare
EXACT()dentroSUMPRODUCT()così:Questo garantisce che nel calcolo sia incluso solo il testo che corrisponde esattamente, inclusa la distinzione tra maiuscole e minuscole.
Combinare SUMPRODUCT() con EXACT(). Immagine dell'autore.
Usare VLOOKUP() con SUMPRODUCT()
SUMPRODUCT()può anche valutare risultati di ricerca come parte della sua logica. Combinata conVLOOKUP(), permette calcoli condizionali basati su valori archiviati in una tabella separata:Qui,
VLOOKUP()recupera la categoria per ciascun prodotto eSUMPRODUCT()include solo le righe che corrispondono alla condizione specificata. Questo approccio evita colonne di supporto e supporta un filtraggio basato su ricerca più flessibile rispetto alle formuleSUMIF()tradizionali.Combinare SUMPRODUCT() con VLOOKUP(). Immagine dell'autore.
Contare i valori univoci usando COUNTIF() con SUMPRODUCT()
Puoi anche usare
SUMPRODUCT()conCOUNTIF()per contare i valori unici in questo modo:Combinare SUMPRODUCT() con COUNTIF(). Immagine dell'autore.
In questa formula, i valori duplicati condividono pesi frazionari che sommano a
1, così ogni elemento unico è contato una sola volta. Ecco perché il risultato è3.Anche se esistono funzioni più recenti, questa tecnica è ancora utile nelle versioni più vecchie di Excel o in modelli di array complessi.
Risoluzione dei problemi, ottimizzazione e buone pratiche
Ora che sai come e dove usare
SUMPRODUCT(), ecco alcune difficoltà che potresti incontrare e come risolverle:Gestione degli errori e problemi comuni
La maggior parte degli errori di
SUMPRODUCT()deriva da piccoli problemi strutturali più che da logica errata. Quando una formula restituisce0, un totale imprevisto o un errore, di solito è facile isolare il problema:Dimensioni degli array non corrispondenti
Ogni array usato in
SUMPRODUCT()deve avere lo stesso numero di righe e colonne. Se un intervallo è più lungo o più largo degli altri, la formula non può essere valutata correttamente.Controllo rapido: verifica che tutti gli intervalli di riferimento inizino e finiscano sulle stesse righe e colonne.
Testo inaspettato o caratteri nascosti
SUMPRODUCT()esegue matematica numerica. Se un intervallo sembra numerico ma contiene spazi o testo, il calcolo può restituire risultati errati o zero.Soluzione rapida: usa
TRIM()per rimuovere gli spazi extra o incapsula i valori con--per forzare la conversione numerica quando appropriato.Parentesi fuori posto
Le parentesi controllano l'ordine di valutazione. Una parentesi mancante o fuori posto può far applicare una condizione in modo errato o per nulla.
Soluzione rapida: raggruppa chiaramente ogni test logico prima di combinarlo con l'aritmetica o altre condizioni.
Testare la logica intermedia passo dopo passo
Uno dei modi più rapidi per effettuare il debug di una formula
SUMPRODUCT()è valutare i singoli componenti.Ecco come puoi fare:
(A2:A10>50)Una condizione “sana” restituisce un array pulito di valori
TRUEeFALSEo di1e0se convertiti. Se vedi errori o risultati imprevisti, quel segmento è la fonte del problema.Flusso pratico di debug
Quando una formula
SUMPRODUCT()non si comporta come previsto:Questo approccio in genere risolve i problemi rapidamente senza riscrivere l'intera formula o aggiungere colonne di supporto.
Ottimizzazione delle prestazioni
SUMPRODUCT()valuta ogni cella in ciascun array di riferimento, quindi la struttura della formula ha un impatto diretto sulle prestazioni in cartelle di lavoro grandi. Alcune scelte possono però prevenire rallentamenti:Limita gli intervalli di calcolo
Evita i riferimenti a colonna intera come
A:A. Restringi invece le formule all'intervallo minimo necessario:A2:A500.Intervalli più piccoli riducono il numero di celle che
SUMPRODUCT()deve elaborare e migliorano la velocità di ricalcolo.Semplifica le espressioni logiche
Ogni test logico dentro
SUMPRODUCT()è valutato riga per riga. Quindi, prova a combinare o snellire le condizioni dove possibile, perché ciò riduce il numero totale di operazioni.Se due condizioni possono essere espresse come una regola più pulita, le prestazioni migliorano senza cambiare i risultati.
Usa tabelle strutturate o intervalli dinamici con nome
Le tabelle di Excel e gli intervalli dinamici con nome si adattano automaticamente all'aumentare dei dati mantenendo gli intervalli strettamente delimitati. Questo preserva le prestazioni senza dover modificare le formule quando i dataset crescono.
Fai attenzione ad array molto grandi
Ogni array e condizione aggiuntiva aumenta il carico di calcolo. Nei modelli di grandi dimensioni, evita criteri non necessari e rimuovi gli array che non influiscono direttamente sul risultato.
Lavorare con gli array dinamici di Excel 365
In Excel 365,
SUMPRODUCT()non produce risultati “spilled”, ma funziona in modo affidabile con array “spilled” creati da funzioni comeFILTER()oUNIQUE(). Questo ti permette di combinare output da array dinamici conSUMPRODUCT()mantenendo i calcoli stabili e prevedibili.Per modelli grandi e ricchi di spill, valuta se una funzione di array dinamico può sostituire parte della logica. Ma quando servono moltiplicazioni riga per riga e pesi condizionali,
SUMPRODUCT()è l'opzione migliore.Confrontare SUMPRODUCT() con funzioni alternative
SUMPRODUCT()si sovrappone a diverse funzioni di Excel, ma risolve i problemi in modo diverso. Vediamo come:SUMPRODUCT() vs. SUMIF() / SUMIFS()
SUMIF()eSUMIFS()sono veloci ed efficienti per condizioni semplici. Danno il meglio quando:SUMPRODUCT()sacrifica un po' di velocità per la flessibilità. È più adatta quando i calcoli richiedono:Per dataset grandi con regole semplici,
SUMIFS()è di solito più veloce. Ma quando precisione e controllo contano più della pura velocità,SUMPRODUCT()è la scelta migliore.SUMPRODUCT() vs. formule di array classiche
Le formule di array tradizionali eseguono molti degli stessi calcoli, ma richiedono
Ctrl+Shift+Enter (CSE)e possono essere più difficili da mantenere.SUMPRODUCT()evita del tutto CSE e si comporta come una funzione standard di Excel. Questo rende le formule più facili da leggere, modificare e condividere in ambienti collaborativi o aziendali dove gli utenti potrebbero non conoscere le formule di array.SUMPRODUCT() vs. funzioni moderne di array dinamici
Funzioni più recenti come
FILTER(),UNIQUE()eBYROW()sono ottime per restituire risultati “spilled”, rimodellare i dati e produrre elenchi o tabelle visibili.Ma
SUMPRODUCT()resta preziosa quando:Gli array dinamici spesso integrano
SUMPRODUCT()più che sostituirla, per esempio generando array filtrati cheSUMPRODUCT()poi valuta.Quando SUMPRODUCT() è la scelta giusta
Usa
SUMPRODUCT()quando hai bisogno di:Totali condizionali con logica complessa
Condizioni
ORo criteri calcolatiCalcoli ponderati senza colonne di supporto
Un'unica cella di risultato stabile
Funzione
Caso d'uso ideale
Punti di forza
Limitazioni
SUMPRODUCT()Calcoli condizionali complessi che restituiscono un singolo numero
Logica flessibile
Condizioni OR
Calcoli ponderati
Nessuna colonna di supporto
Più lenta su intervalli molto grandi
SUMIF()/SUMIFS()Totali condizionali semplici
Veloci
Efficienti
Logica limitata
Nessuna condizione OR
Formule di array classiche
Calcoli avanzati in modelli Excel più vecchi
Flessibili
Richiedono Ctrl+Shift+Enter
Più difficili da mantenere
FILTER()Restituire elenchi o tabelle filtrate
Risultati dinamici
Logica leggibile
Non pensata per matematica ponderata
UNIQUE()Estrarre valori distinti
Semplice
Veloce
Nessuna logica di calcolo
BYROW()/LAMBDALogica personalizzata a livello di riga
Altamente flessibili
Pattern moderni
Impostazione più complessa
INDEX MATCH()Ricerche a valore singolo
Precise
Efficienti
Restituisce un solo valore
Non aggrega
Implementazione tra piattaforme
La logica alla base di
SUMPRODUCT(): filtrare, moltiplicare, poi sommare, è coerente tra gli strumenti. Ciò che cambia è come ogni piattaforma gestisce valori logici e array.Comportamento in Excel vs. Google Sheets
Sia Excel che Google Sheets supportano
SUMPRODUCT(), ma differiscono leggermente nel modo in cui trattano i valori logici.In Excel, le espressioni logiche restituiscono
TRUEeFALSE, che devono essere convertiti esplicitamente in1e0usando il doppio unario--o una coercizione numerica. Senza questa conversione, i calcoli possono restituire risultati imprevisti.Google Sheets gestisce automaticamente questa conversione. I valori logici sono trattati come numerici (
TRUE= 1,FALSE= 0), quindi le formuleSUMPRODUCT()possono funzionare senza operatori aggiuntivi.Concettualmente, la logica è identica. La differenza sta solo nel fatto che la conversione numerica sia implicita o esplicita.
Tradurre la logica di SUMPRODUCT() in Python
Lo stesso schema si applica in strumenti basati su Python come NumPy o pandas, anche se la sintassi è diversa.
In Python, le condizioni sono valutate riga per riga e producono array booleani (
TrueeFalse). Questi valori booleani si comportano già come1e0nei calcoli, eliminando il passaggio di conversione.Il flusso concettuale resta lo stesso:
Considerazioni per team multipiattaforma
Se tu o il tuo team lavorate tra Excel, Google Sheets e Python, allineatevi su alcuni comportamenti chiave:
La logica booleana è il linguaggio comune: tutte le piattaforme usano una logica TRUE/FALSE che può essere trattata come maschere numeriche.
Le maschere sostituiscono le colonne di supporto: Excel usa
--(condizione). Python usa direttamente maschere booleane.Le regole di confronto del testo differiscono: in Excel funzioni come
SEARCH()non distinguono tra maiuscole e minuscole per impostazione predefinita, mentre in Python il confronto del testo può essere case-sensitive a seconda della configurazione.I valori mancanti si comportano in modo diverso: in Excel le celle vuote e i valori NaN in Python posono influire sui risultati se non gestiti in modo coerente.
Su tutte le piattaforme, l'idea chiave resta la stessa:
SUMPRODUCT()rappresenta uno schema di calcolo riutilizzabile.Considerazioni finali
Se vuoi migliorare con
SUMPRODUCT(), prendi un report reale che già usi e ricostruisci una formula complessa senza colonne di supporto. Così capirai lo schema e vedrai doveSUMPRODUCT()può inserirsi nel tuo flusso di lavoro.Se vuoi approfondire, dai un'occhiata al percorso di competenze Data Analysis with Excel Power Tools per capire come funzioni come
SUMPRODUCT()si inseriscono in flussi di lavoro analitici più ampi.