Excel: sommare le celle se le corrispondenti sono non vuote

Il problema

Vogliamo sommare i valori della colonna Fatturato solo quando la cella corrispondente della colonna Agente è non vuota.

Primo metodo: SOMMA.PIÙ.SE

La funzione SOMMA.PIÙ.SE somma tutti i suoi argomenti che soddisfano più criteri. La sua sintassi è:

SOMMA.PIÙ.SE(int_somma; intervallo_criteri1; criteri1; [intervallo_criteri2; criteri2]; …), dove int_somma è l’intervallo da sommare, intervallo_criteri1 è l’intervallo che verrà testato dalla condizione criteri1.

Nel nostro caso andremo dunque a inserire in un’altra cella la funzione:

=SOMMA.PIÙ.SE(B2:B12;C2:C12;”<>“)

Nel nostro caso la colonna B rappresenta il fatturato e la colonna C l’agente. Notare che come criterio è sufficiente indicare “<>” (diverso da): nel caso venga utilizzato senza altri valori resta sottointeso “diverso da vuoto”.

Secondo metodo: MATR.SOMMA.PRODOTTO

La funzione MATR.SOMMA.PRODOTTO restituisce la somma dei prodotti di intervalli o matrici corrispondenti. La sua sintassi è:

MATR.SOMMA.PRODOTTO(matrice1; [matrice2]; [matrice3]; …), dove matrice1 è la prima matrice (intervallo) della quale si voglio moltiplicare e poi sommare gli elementi, [matrice2], [matrice3] sono le successive matrici (intervalli) delle quali si vogliono moltiplicare gli elementi e poi sommarli.

Nel nostro caso dovremo scrivere:

=MATR.SOMMA.PRODOTTO((Tabella1[Agente]<>“”)*Tabella1[Fatturato])

Notate che il primo argomento della funzione non è direttamente un intervallo di valori, infatti è messo tra parentesi, ma è un test eseguito sulla colonna Agente. Il risultato di questo test sarà un intervallo di celle di valore: Vero, se la cella contiene le iniziali di un agente, Falso, se la cella è vuota.

Nel nostro caso dunque il risultato sarà: (Vero, Falso, Vero, Vero, Vero, Falso, Vero, Vero, Falso, Vero, Vero). La domanda adesso è: come posso moltiplicare questi valori per i valori della colonna Fatturato? Lo posso fare perchè Excel, trattandosi di una moltiplicazione, esegue una conversione implicita da valori booleani (Vero e Falso) a valori interi.

I valori precedenti vengono convertiti in: (1,0, 1, 1, 1, 0, 1, 1, 0, 1, 1). A questo punto tali valori vengono moltiplicati, cella per cella, con la colonna fatturato e poi sommati. E’ evidente che al risultato finale contribuiranno solo le celle che hanno la loro corrispondente della colonna Agenti non vuota.

Terzo metodo: FILTRO e SOMMA

La funzione FILTRO consente di filtrare un intervallo di dati in base a criteri definiti. La sua sintassi è:

=FILTRO(matrice,includi,[se_vuoto]), dove matrice è l’intervallo di celle da filtrare, includi è un intervallo di valori booleani delle stesse dimensioni di matrice, se_vuoto è il valore da restituire se tutti i valori della matrice sono nulli.

Nel nostro caso scriveremo:

=SOMMA(FILTRO(Tabella1[Fatturato];Tabella1[Agente]<>“”;0))

L’effetto del filtro è quello di “eliminare” dalla colonna Fatturato tutti i valori che hanno il loro corrispondente vuoto nella colonna Agenti.

Il risultato

Abbiamo usato 3 metodi diversi soprattutto per fare pratica con le funzioni MATR.SOMMA.PRODOTTO e FILTRO che, data la loro flessibilità, risultano utili in moltissime situazioni.

servizialleimprese
Avatar photo
Informazioni su Epysoft DataOps 4 Articoli
Specialisti nell’analisi dati con Excel e Python: modelli, supporto alle decisioni, simulazioni. Settori di operatività: Business e manufacturing analytics, Privacy data, Operations e Marketing analytics, Accounting e finanza.