Principio di Pareto
Il principio di Pareto nei sistemi complessi afferma che circa il 20% delle cause provoca l'80% degli effetti.
Applicato ai magazzini possiamo determinare delle classi in base alla quantità della merce movimentata e al valore del venduto.
Per quanto riguarda la quantità, viene prima calcolata la somma incrementale, poi viene calcolata la percentuale sul totale. Chiameremo questo valore Tot_%_Quantità
Vendono definite le classi secondo la tabella
| Quantità della merce movimentata | Classe |
| Tot_%_Quantità <= 80% | A |
| 80% < Tot_%_Quantità <= 90% | B |
| 90% < Tot_%_Quantità | C |
Per quanto riguarda il valore , anche qui calcoliamo la somma incrementale, poi calcoliamo la percentuale sul totale. Chiameremo questo valore Classe_123_Valore
Vendono definite le classi secondo la tabella
| Quantità della valore del venduto | Classe |
| Tot_%_Valore <= 80% | 1 |
| 80% < Tot_%_Valore <= 90% | 2 |
| 90% < Tot_%_Valore | 3 |
Per evidenziare le situazioni critiche si comparano i due dati:
| Valore | |||
1 | 2 | 3 | ||
Q | A | A1 | A2 | A3 |
B | B1 | B2 | B3 | |
C | C1 | C2 | C3 | |
Situazione
| Diagonale A1,B2,C3 | Situazione Congrua |
| Zone A3, C1 | Zone critiche |
| Zone A2,B1,B3,C2 | Zone con minori criticità |
Obiettivo
Ricuperare i dati di movimentazioni delle merci da un magazzino e creare la Classe ABC e 123.
Utilizzeremo i dati allegati nel file Dati-ABC-123.xlsx
Recupero dei dati
Creiamo in nuovo progetto Power BI e recuperiamo i dati dal file

Il file Dati-ABC-123.xlsx è organizzato in modo da contenere le informazioni che ci servono il oggetti tabella di Excel. Selezioniamo quindi le tabelle t_quantità e t_valore

Confermiamo facendo click su Trasforma Dati.
Iniziamo con la tabella t_quantità. Ordiniamo i dati in base alla quantità decrescente

Dal menu Aggiungi colonna, aggiungiamo inoltre una colonna indice che parte da 1. Ci servirà per effettuare la somma incrementale.

Per comodità trasciniamo questa nuova colonna tutta a sinistra.

Ripetano le stesse operazioni sulla tabella t_valore.
Ordiniamo la colonna per valore decrescente.

Dal menu Aggiungi colonna, aggiungiamo anche qui una colonna indice che parte da 1. Ci servirà per effettuare la somma incrementale.

Per comodità trasciniamo questa nuova colonna tutta a sinistra.

Per comodità di lettura impostiamo la colonna Valore come Numero decimale fisso (i valori non verranno comunque troncati)

Terminiamo questa prima fase andando in Home e scegliendo Chiudi e Applica.

Una volta terminato il caricamento dei dati, possiamo proseguire.

Creazione degli oggetti visivi tabella
Tabella Quantità
Partiamo con le quantità. Creiamo un oggetto visivo tabella

All'interno della tabella mettiamo in ordine: Indice, Codice, Quantità

Rinominiamo la colonna Somma di Quantità in Quantità facendo doppio click nella zona Colonne

La tabella diventa

Per migliorare la leggibilità, selezioniamo il campo Quantità e attiviamo il separatore delle migliaia.

Iniziamo a calcolare la Somma Incrementale o Pareto. Per fare questo abbiamo bisogno di creare una serie di misure. Per non creare confusione nel progetto, raggrupperemo queste misure in una tabella fittizia.
Creazione della tabella Misure
Andiamo in Visualizzazione Tabella

Nel menù Strumenti tabella, creiamo una nuova tabella.

Inseriamo il codice
Misure = {0}
in modo da creare una tabella con una colonna e il valore 0

In questo modo potremo associare a questa tabella fittizia le nuove misure
Calcolo di Pareto sulla quantità
Rimanendo sulla tabella Misure creiamo le nuova misura Pareto_Quantità
Pareto_Quantità = CALCULATE(
SUM('t_quantità'[Quantità]),
FILTER(ALLSELECTED('t_quantità'),
't_quantità'[Indice] <= MAX('t_quantità'[Indice])))
Possiamo ora inserire questa misura nella nostra tabella

Come si vede abbiamo ottenuto il calcolo incrementale

Spiegazione
La funzione CALCULATE itera su ogni riga della tabella 't_quantità' e a seconda della riga, esegue la somma delle Quantità di tutta la tabella 't_quantità' ma solo su determinate righe (FILTER)
- Riga 1 - righe con l'indice <= 1 (solo la prima riga) --> 31.926
- Riga 2 - righe con l'indice <= 2 (solo le prime due rigge) --> 31.926+30.717 = 62.643
- Riga 3 - righe con l'indice <= 3 (solo le prime tre righe) --> 31.926+30.717+24.278 = 86.921
- e così via
Calcolo del Totale della quantità
Per calcolare la percentuale sul totale di ogni somma incrementale abbiamo bisogno innanzitutto di una nuova misura: Tot_Quantità
Rimanendo sempre nella tabella delle misure, creiamo una nuova misura
Tot_Quantità = CALCULATE(SUM('t_quantità'[Quantità]),ALL())

Spiegazione
La funzione CALCULATE itera su tutte le righe della tabella 't_quantità' ( ALL() ) ed esegue la somma della Quantità. In questo modo il risultato è indipendente dagli eventuali filtri applicati alla pagina che contiene gli oggetti visivi.
Per vedere il valore di questa misura possiamo creare un oggetto scheda.

E in questo oggetto inseriamo la misura Tot_Quantità.

Per visualizzare meglio questo valore andiamo sulla formattazione dell'oggetto visivo.

Impostiamo nel Valore callout come Unità visualizzate Nessuno.

Come si vede i totali coincidono.

Con questo Totale possiamo calcolarci ora la percentuale di pareto sul Totale del valore creando una nuova misura.
Formattiamo questa misura come percentuale e la inseriamo nella tabella
Calcolo della percentuale di pareto sul totale della quantità
Ora che abbiamo una misura con il totale possiamo calcolare la percentuale. Creiamo la nuova misura Tot_%_Quantità sempre all'interno della tabella Misure.
Tot_%_Quantità = CALCULATE(
DIVIDE([Pareto_Quantità],[Tot_Quantità]),
FILTER(ALLSELECTED(>'t_quantità'),
't_quantità'[Indice]<=MAX('t_quantità'[Indice])))

Inseriamo questa misura nella tabella

Impostiamo la formattazione di questo campo come percentuale

siamo giunti a questa visualizzazione.

Calcolo della Classe ABC
Possiamo definire la classe ABC in base al seguente criterio
- Tot_%_Quantità <= 80% - Classe A
- 80% < Tot_%_Quantità <= 90% - Classe B
- 90% < Tot_%_Quantità - Classe C
Creiamo la misura Classe_ABC_Quantità utilizzando la funzione SWITCH e tenendo conto che le percentuali sono semplicemente numeri decimali 80% = 0.8
Classe_ABC_Quantità = SWITCH(TRUE(),
[Tot_%_Quantità] <= 0.8 , "A",
[Tot_%_Quantità] <=0.9 , "B",
"C"
Inseriamo la misura nella tabella e otteniamo;

Tabella Valori
Inseriamo una nuova pagina nel progetto. La precedente la chiamiamo Quantità e quella attuale Valori.

Creiamo un oggetto visivo tabella. All'interno della tabella mettiamo in ordine: Indice, Codice, Valore

Formattiamo il campo Valore in formato valuta con 2 cifre decimali

Rinominiamo la colonna Somma di Valore in Valore facendo doppio click nella zona Colonne.

Calcolo di Pareto sul valore
Andiamo nella tabella misure e creiamo la misura Pareto_Valore.
Pareto_Valore = CALCULATE(SUM(t_valore[Valore]),
FILTER(ALLSELECTED(t_valore),
t_valore[Indice]<=MAX(t_valore[Indice])))

Formattiamo questa misura in formato valuta con 2 cifre decimali e la inseriamo nella tabella.

Calcolo del Totale del valore
Creiamo una nuova misura che calcoli il totale del valore. Applichiamo il formato valuta con 2 cifre decimali
Tot_Valore = CALCULATE(sum(t_valore[Valore]),ALL())

Per vedere il valore di questa misura possiamo creare un oggetto scheda.

Per una corretta visualizzazione, formattiamo questo oggetto nella scheda Valore callout con Unità visualizzate: Nessuno e 2 cifre decimali

Il risultato sarà

Calcolo della percentuale di pareto sul Totale del valore
Con questo Totale possiamo calcolarci ora la percentuale di pareto sul Totale del valore creando una nuova misura.
Tot_%_Valore = CALCULATE(DIVIDE([Pareto_Valore],[Tot_Valore]),
FILTER(ALLSELECTED(t_valore),
t_valore[Indice]<=MAX(t_valore[Indice])))
Formattiamo questa misura come percentuale e la inseriamo nella tabella

Calcolo della Classe 123
Possiamo definire la classe 123 in base al seguente criterio
Tot_%_Valore <= 80% - Classe 1
80% < Tot_%_Valore <= 90% - Classe 2
90% < Tot_%_Valore - Classe 3
Creiamo la misura Classe_123_Valore utilizzando la funzione SWITCH e tenendo conto che le percentuali sono semplicemente numeri decimali 80% = 0.8
Classe_123_Valore = SWITCH(TRUE(),
[Tot_%_Valore] <= 0.8 , "1",
[Tot_%_Valore] <= 0.9 , "2",
"3")
Inseriamo questa misura nella tabella ottenendo:





