LinkedIn Facebook

HomeBlog › Excel: Funzione DB Somma

Utilizzo della funzione "fantasma" DB.SOMMA

Oggi parliamo di una funzione che fa parte di una categoria cui ben si addice il termine “fantasma”.
Per quale motivo? Perché nella Libreria delle funzioni presente sulla scheda FORMULE , che raggruppa le funzioni in categorie tematiche, è del tutto assente una famiglia di funzioni: quelle cosiddette di Database.
Per poterle immettere l’utente le deve digitare a mano oppure usare il pulsante INSERISCI FUNZIONE e cercare solo nella finestra di immissione delle funzioni la categoria Database.
In realtà questa newsletter parla al tempo stesso di tre funzioni.
Le altre due sono più conosciute dagli utenti che hanno una conoscenza più avanzata di Excel ovvero la funzione SOMMA.PIÙ.SE (maggiormente nota) e la funzione MATR.SOMMA.PRODOTTO (meno nota) per mostrare un caso in cui entrambe queste funzioni falliscono nel loro intento e dimostrare la bontà di queste funzioni misconosciute (quelle di database, di cui DB.SOMMA fa parte).
Si guardi il prospetto sotto raffigurato:



Il prospetto, reso più snello ai fini della presentazione, presenta delle vendite di articoli in determinate aree.
Nell’area colorata di giallo si vuole conoscere il totale delle vendite per le aree Sud ed Isole insieme (criteri digitati nelle celle U2 ed U3).
Le celle gialle sono 3 perché si vogliono applicare le 3 funzioni e vedere il risultato.
Nella cella S3 si tenta con la prima funzione che viene in mente quando si tratta di sommare valori in base a due o più condizioni: la funzione SOMMA.PIÙ.SE.
Gli argomenti sono i seguenti:

- L’intervallo da sommare è la colonna P (dunque P:P).

- L’intervallo che contiene i criteri è sempre lo stesso ovvero la colonna H (dunque H:H).

- I criteri sono una volta Sud (selezionare la cella U2) ed un volta Isole (selezionare la cella U3).

La funzione che ne deriva è scritta correttamente: =SOMMA.PIÙ.SE(P:P;H:H;U2;H:H;U3) eppure, come si potrà notare nella figura che si troverà più sotto, il risultato è 0.
Per quale motivo? Molto semplice: i due criteri (Sud ed Isole) si trovano nella stessa colonna e la logica con cui ragiona Excel è diversa da quella che ci aspettiamo: l’utente ragiona a livello di colonna, Excel a livello di cella.
Il ragionamento di Excel si basa sul connettore AND applicato alla singola cella, ovvero: in una cella ci deve essere scritto sia Sud che Isole e, naturalmente, non è così!
La soluzione sarebbe legare due SOMMA.SE (uno per Nord ed uno per Sud) con il segno + ed avere =SOMMA.SE(H:H;U2;P:P)+SOMMA.SE(H:H;U3;P:P) ma non è la soluzione ottimale e lo diventa ancora meno se i criteri sono molteplici e la funzione da scrivere diventa più lunga.
Un’altra soluzione possibile è usare la funzione MATR.SOMMA.PRODOTTO che può essere un validissimo surrogato delle funzioni di calcolo condizionale.
Come funzione di base, essa somma il prodotto di tutti i valori di una colonna con tutti i valori di una colonna, ma quando c’è una condizione (come nel nostro esempio) può funzionare come le funzioni di calcolo condizionale.
L’unico problema strutturale è che accetta solo numeri come valori racchiusi dei propri argomenti (mentre nel nostro esempio le nostre condizioni sono testuali ovvero le aree).
La soluzione sta nell’anteporre alla matrice che contiene testo il doppio segno meno --.
Infatti, come esito della funzione, quando la condizione è rispettata la cella restituisce VERO e quando non è rispettata restituisce VERO: anteponendo il doppio segno – il Vero diventa 1 e, quindi, vengono sommate tutte le celle che rispettano la condizione.
Se proviamo a sommare gli importi della sola area Sud (ricordiamo che il criterio si trova nella cella U2) la funzione ci dà il corretto risultato.
La sintassi finale è =MATR.SOMMA.PRODOTTO(--(H2:H660=U2);P2:P660).
In H2:H660 vengono cercate le celle che contengono la parola presente in U2 (Sud).
La celle sono 103 e con il doppio meno davanti la funzione restituisce 103.
L’intervallo P2:P660 non ha il doppio meno davanti perché contiene numeri.
Nelle 103 celle in cui appare Sud, la somma degli importi dà come risultato € 207.209,78.
Purtroppo appena si aggiunge alla funzione come ulteriore argomento la ricerca della celle che hanno come condizione anche l’area Nord presente in U3 =MATR.SOMMA.PRODOTTO(--(H2:H660=U2);--(H2:H660=U3);P2:P660), la funzione mostra il proprio limite e restituisce 0 come nel caso del SOMMA.PIÙ.SE per lo stesso motivo sopra illustrato.
Ecco nell’immagine i fallimenti delle due funzioni nelle celle gialle S6 ed S7.



In questo caso la sola funzione che può venirci incontro è DB.SOMMA che si può digitare a mano oppure trovare nella finestra INSERISCI FUNZIONE (clic sull’omonimo comando nella scheda FORMULE) nella categoria Database.
La finestra degli argomenti chiede 3 cose:

• Selezionare con il mouse tutta la tabella o Database (nel nostro caso A1:P660)

• Specificare quale sia il campo ovvero la colonna che contiene i valori da sommare. O si mette il numero della colonna (nel nostro esempio è P che, partendo da A, è la colonna numero 16) o il nome della colonna tra virgolette (“Importo finale”) o si immette la coordinata della cella sulla riga delle etichette che contiene l’intestazione della colonna (nel nostro caso P1).

• Specificare quali sono i criteri restrittivi, che devono essere precedentemente stati immessi in un intervallo di celle. Nel nostro caso l’intervallo è U1:U3. Va selezionata anche la cella U1 (contenente l’etichetta della colonna con i criteri) altrimenti la funzione non capisce quale sia la colonna in cui cercare le celle che rispettino la condizione.

La funzione che ne risulta è pertanto la seguente: =DB.SOMMA(A1:P660;P1;U1:U3).
Come detto, al posto di P1 si può anche mettere come argomento 16 oppure “Importo finale”: il risultato è lo stesso.
A differenza delle altre funzioni … funziona! E non è nemmeno poi così complessa da applicare. Giusto?




Se l'articolo è stato utile, seguici sui Social networks cliccando i pulsanti in alto a destra di questa pagina.

Se vuoi condividere questo articolo nella tua Rete sociale, puoi utilizzare i bottoni Social a sinistra