Vai al contenuto principale

SUMPRODUCT() in Excel: cosa dovresti sapere

Guida pratica all'uso di SUMPRODUCT() per calcoli condizionali, ponderati e basati su matrici in Excel
· 15 min leggi

Scopri con l'IA

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.

La sintassi di SUMPRODUCT() è:

SUMPRODUCT(array1, [array2], …)

Ecco una scomposizione di questa sintassi: 

Elemento

Descrizione

Note

array1

Il primo intervallo o array usato nel calcolo

Obbligatorio

[array2]

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:

=SUMPRODUCT(A2:A4, B2:B4)

SUMPRODUCT function in Excel

SUMPRODUCT() in Excel. Immagine dell'autore.

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: 

=SUMPRODUCT((B2:B6*C2:C6)-E2:E6)

Questo moltiplica Quantity × Price per ogni riga e sottrae il valore di Discount, quindi somma tutti i valori risultanti in un unico totale.

Using arithmetic expressions and operators in SUMPRODUCT

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. 

Il doppio unario esegue quella conversione:

=SUMPRODUCT(--(A2:A6>100), B2:B6)

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:

--(D2:D6="Fruit")

Questo converte i valori logici in numeri così:

{1, 1, 0, 1, 0}

Qui, TRUE diventa 1 e FALSE diventa 0. Ora SUMPRODUCT() può moltiplicare correttamente.

=SUMPRODUCT(--(D2:D6="Fruit"), B2:B6)

Ecco come calcola: 

(1×5) + (1×3) + (0×4) + (1×2) + (0×6) = 10

Solo le righe contrassegnate con 1 sono incluse nel calcolo. Il risultato è 10, che è la quantità totale per i prodotti Fruit.

using Double unary in SUMPRODUCT in Excel.

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)

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)

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)

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.

Applying AND and OR logic using SUMPRODUCT.

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"))
)

SUMPRODUCT handles matrix multiplication in Excel.

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)

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)

Per esempio, per calcolare la media ponderata dei corsi di uno studente, puoi usare la formula seguente:

=SUMPRODUCT(B2:B4, C2:C4) / SUM(C2:C4)

Ecco come Excel valuta ciascuna componente:

  • Math: 85 × 0,40 = 34
  • Science: 90 × 0,35 = 31,5
  • English: 78 × 0,25 = 19,5

Il totale ponderato è 85, che diventa la media finale.

Calculate the weighted average using the SUMPRODUCT

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:

=SUMPRODUCT(B2:B6, C2:C6, --(D2:D6<>"Optional")) / 
 SUMPRODUCT(C2:C6, --(D2:D6<>"Optional"))

La formula divide il totale ponderato (numeratore) per il peso totale (denominatore).

Calculating the weighted average using SUMPRODUCT() in Excel

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,35

  • Denominatore: (0,25×1) + (0,25×1) + (0,20×0) + (0,20×1) + (0,10×0) = 0,70

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)

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.

Combining SUMPRODUCT with SEARCH

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)

Questo garantisce che nel calcolo sia incluso solo il testo che corrisponde esattamente, inclusa la distinzione tra maiuscole e minuscole.

Combining SUMPRODUCT with EXACT

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
)

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.

Combining SUMPRODUCT with VLOOKUP

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:

=SUMPRODUCT(1/COUNTIF(A2:A6, A2:A6))

Combining SUMPRODUCT with COUNTIF.

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:

  1. Verifica che le dimensioni degli array corrispondano
  2. Conferma che gli intervalli numerici contengano solo numeri
  3. Prova ogni condizione in modo indipendente
  4. 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.

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 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:

  1. Valutare una condizione
  2. Creare una maschera booleana
  3. Moltiplicare i valori per quella maschera
  4. 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. 

Laiba Siddiqui

Autore

Laiba Siddiqui

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.

=SUMPRODUCT((criteria_range=criteria)*(--ISNUMBER(value_range)), value_range)

SUMPRODUCT() supporta i caratteri jolly?

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.

Argomenti

Correlato