Valore cumulato sulla classifica
Questo articolo affronta il tema della costruzione della somma cumulata lungo una classificazione. Il tema è la risposta a domande del tipo “quali sono i clienti che fanno l’80% del fatturato?” oppure “quale percentuale del fatturato rappresentano i primi 10 prodotti?”.
Per l’esercizio ci rifacciamo a un elenco di valori per i quali abbiamo già costruito un rango (vedi questo articolo:
“Creazione di una classifica (Ranking)“).
![](http://giorgiobenedetti.info/wp-content/uploads/2020/04/PowerBI_SommaCumulata_1.png)
Ora vediamo come costruire la somma cumulata per la seconda tabella, dove ci aspettiamo di avere 6.000 nella prima riga, 11.000 nella seconda, 16.000 nella terza e così via.
La logica della formula è: “somma i valori di fatturato per tutti i clienti che hanno un ranking minore o uguale al mio”.
La formula è un po’ complessa ed è la seguente:
Vendite Nette Cumulate (Per Rank) =
VAR RankCorrente = [Rank (Vendite)]
return CALCULATE(
[Somma vendite];
FILTER(
ALLSELECTED(Vendite[Cliente]);
[Rank (Vendite)] <= RankCorrente
)
)
La formula vedete che è complessa, perchè necessita di almeno due passaggi:
- il primo passaggio prende il rank corrente del cliente che ho in riga e lo mette da parte in una variabile che si chiama RankCorrente;
- il secondo calcola il valore della misura [Somma Vendite] (che fa la somma delle vendite) per tutti i Clienti (in pratica esce dal contesto di riga che è il Cliente singolo, ed estende il calcolo a tutti i Clienti, filtrando i soli Clienti con un ranking inferiore o uguale al corrente).
Il risultato finale è il seguente:
![](http://giorgiobenedetti.info/wp-content/uploads/2020/04/PowerBI_SommaCumulata_2.png)
Ora possiamo calcolare un ulteriore rapporto che è il “totale cumulato delle vendite” / “Totale delle vendite”.
Se abbiamo capito il trucco, ora dovrebbe essere abbastanza ciaro che strada seguire:
Vendite Nette Cumulate (Per Rank) % =
DIVIDE(
Vendite[Vendite Nette Cumulate (Per Rank)];
CALCULATE(
[Somma vendite];
ALLSELECTED(Vendite[Cliente])
)
)
Praticamente dividiamo la misura delle vendite cumulate per la somma selle vendite di tutti i clienti selezionati.
Risultato:
![](http://giorgiobenedetti.info/wp-content/uploads/2020/04/PowerBI_SommaCumulata_3.png)
Riferimenti DAX utili:
ALLSELECTED https://dax.guide/allselected/
FILTER https://dax.guide/filter/
CALCULATE https://dax.guide/calculate/
DIVIDE https://dax.guide/divide/