Σ Fogli di calcolo

SOMMA.PIÙ.SE e CONTA.PIÙ.SE: totali con più condizioni

Come usare SOMMA.PIÙ.SE, CONTA.PIÙ.SE e MEDIA.PIÙ.SE con testi, numeri, date e caratteri jolly, e come costruire un riepilogo mensile automatico.

Sommare una colonna è facile. Sommare solo gli importi di un certo agente, in una certa zona, in un certo mese, è il genere di domanda che si presenta ogni giorno in un ufficio. Le funzioni SOMMA.PIÙ.SE, CONTA.PIÙ.SE e MEDIA.PIÙ.SE (SUMIFS, COUNTIFS e AVERAGEIFS in inglese) rispondono esattamente a questo: calcolano un totale, un conteggio o una media considerando solo le righe che soddisfano tutte le condizioni indicate.

La sintassi

=SOMMA.PIÙ.SE(intervallo_somma; intervallo_criteri1; criterio1; [intervallo_criteri2; criterio2]; ...)

Il primo argomento è la colonna da sommare; seguono coppie di «dove guardare» e «cosa deve esserci». Le condizioni sono tutte in E: una riga viene sommata solo se le soddisfa tutte.

CONTA.PIÙ.SE ha la stessa struttura ma senza il primo argomento, perché conta le righe invece di sommare:

=CONTA.PIÙ.SE(intervallo_criteri1; criterio1; [intervallo_criteri2; criterio2]; ...)

MEDIA.PIÙ.SE segue lo schema di SOMMA.PIÙ.SE.

Esistono anche le versioni a condizione singola, SOMMA.SE e CONTA.SE. Attenzione: in SOMMA.SE l'intervallo da sommare è il terzo argomento, non il primo. Per evitare confusione molti preferiscono usare sempre la versione PIÙ.SE, anche con una sola condizione.

Esempio di base

Con un elenco di vendite che ha la data in A, l'agente in B, la zona in C e l'importo in D:

=SOMMA.PIÙ.SE($D$2:$D$5000; $B$2:$B$5000; "Bianchi"; $C$2:$C$5000; "Nord")

restituisce il totale venduto da Bianchi nella zona Nord. Tutti gli intervalli devono avere la stessa dimensione: se uno va da 2 a 5000 e un altro da 2 a 4999, la funzione restituisce #VALORE!.

Come si scrivono i criteri

I criteri sono la parte che genera più dubbi. Le regole sono poche:

Criterio Significato
"Nord" uguale a Nord (senza distinguere maiuscole)
">1000" maggiore di 1000
"<>Annullato" diverso da Annullato
"<>" cella non vuota
"" cella vuota
"Ross*" testo che inizia con Ross
"???-2*" tre caratteri qualsiasi, un trattino, poi 2 e altro

Quando il valore di confronto sta in una cella, l'operatore va unito con la e commerciale:

=CONTA.PIÙ.SE($D$2:$D$5000; ">"&G1)

Scrivere ">G1" tra virgolette è un errore comune: la funzione cercherebbe il testo «G1», non il valore della cella.

Condizioni sulle date

Le date sono numeri, quindi si confrontano con gli stessi operatori. Per il totale di marzo 2026, con la data in A:

=SOMMA.PIÙ.SE($D$2:$D$5000; $A$2:$A$5000; ">="&DATA(2026;3;1); $A$2:$A$5000; "<"&DATA(2026;4;1))

Usare «minore del primo giorno del mese successivo» invece di «minore o uguale all'ultimo giorno» ha un vantaggio: funziona anche se le celle contengono un orario oltre alla data, e non richiede di sapere quanti giorni ha il mese.

Evita di scrivere la data come testo dentro il criterio, per esempio ">=01/03/2026": il risultato dipende dalle impostazioni internazionali del computer e può cambiare aprendo il file altrove. DATA() è sempre univoca.

Un riepilogo mensile che si aggiorna da solo

Ecco uno schema che uso spesso. In una colonna F scrivi il primo giorno di ogni mese (01/01/2026, 01/02/2026, e così via), formattato per mostrare solo mese e anno. Nella cella G1 scrivi il nome di un agente. In G2:

=SOMMA.PIÙ.SE($D$2:$D$5000; $B$2:$B$5000; G$1; $A$2:$A$5000; ">="&$F2; $A$2:$A$5000; "<"&FINE.MESE($F2;0)+1)

FINE.MESE restituisce l'ultimo giorno del mese; aggiungendo 1 si ottiene il primo giorno del mese successivo. Copiando la formula verso il basso hai il venduto mese per mese; copiandola a destra, con altri nomi di agenti in H1, I1 e così via, ottieni una griglia completa. I riferimenti misti G$1 e $F2 fanno sì che ogni cella legga l'agente giusto e il mese giusto.

Condizioni in O

Le funzioni PIÙ.SE combinano le condizioni in E. Per una condizione in O, per esempio le vendite delle zone Nord oppure Centro, la soluzione più semplice è sommare due risultati:

=SOMMA.PIÙ.SE($D$2:$D$5000; $C$2:$C$5000; "Nord") + SOMMA.PIÙ.SE($D$2:$D$5000; $C$2:$C$5000; "Centro")

Con molte alternative, conviene invece aggiungere ai dati una colonna di raggruppamento (per esempio «Macroarea») e usare quella come criterio.

Errori frequenti

  • Intervalli di dimensioni diverse, che producono #VALORE!.
  • Operatore e riferimento nella stessa stringa, come ">G1".
  • Spazi nei dati: «Nord » con lo spazio finale non corrisponde a «Nord».
  • Importi salvati come testo, che SOMMA.PIÙ.SE ignora senza segnalarlo: il totale risulta semplicemente più basso.
  • Intervalli non bloccati, che scivolano quando copi la formula.

Nel mio lavoro, quando un totale ottenuto con SOMMA.PIÙ.SE non coincide con quello di una pivot sugli stessi dati, la causa è quasi sempre uno di questi ultimi due punti.

In sintesi

  • SOMMA.PIÙ.SE somma solo le righe che soddisfano tutte le condizioni; CONTA.PIÙ.SE le conta.
  • Tutti gli intervalli devono avere la stessa dimensione.
  • Con un valore in cella, unisci operatore e riferimento: ">"&G1.
  • Per le date usa DATA() e l'intervallo «dal primo giorno a prima del mese successivo».
  • Le condizioni sono in E; per l'O somma più risultati o aggiungi una colonna di raggruppamento.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche