Calcolare il totale vendite sul mese precedente

Le tabelle pivot sono usate come strumenti di analisi per aggregare i dati. Spesso si effettuano somme e si raggruppano i dati in base ai livelli di analisi d’interesse. Il cliente mi ha fornito questo tabella e mi ha chiesto di riprodurla nel modo più efficace (è la tipica situazione in cui un processo ripetitivo potrebbe essere automatizzato con le macro, per la produzione di un report VBA-driven).

Calcolo delta vendite sul mese precedente

La particolarità di questa tabella è la colonna in grigio: rappresenta la variazione percentuale delle vendite rispetto al mese precedente. Se considero che il periodo 200708 sia la base (il 100%), per ottenere la variazione del periodo 200709 è sufficiente una semplice formula:

[200709] / [200708] -1

Infatti, 5.318/5.598 -1 = -5,0%: nel secondo mese si osserva un decremento di vendite pari al 5%.

Quale risposta diamo al cliente? Ci sono due possibilità: la prima macchinosa e tipicamente “error-prone” (basta sbagliare una formula e chi se ne accorge?)…: posso creare una tabella pivot e poi crearmi una tabella di appoggio,in cui inserisco la formula del delta:

Calcolo delta con formule manuali

E se capita che i prodotto da analizzare non siano più 3, ma aumentino di numero? Ci ricorderemo di ricopiarle le formule sulle nuove righe? E se diminuiscono, di cancellare le formule per le righe inutilizzate?

La seconda possibilità è di calcolare tutto nella tabella pivot con questi vantaggi: dati più compatti, non ci sono rischi di scrivere formule errate e altri benefici caratteristici della tabella pivot.

La tabella pivot finale sarà questa:

Calcolo delta con pivot

Che cosa c’è nell’area Valori?

Nell’area valori c’è il campo SalesAmount, al quale inizialmente Excel applica la funzione di aggregazione Somma. Lo seleziono e con il tasto destro modifico le impostazioni del campo e scelgo Mostra Valori come “% Discordanza da”. In campo base scelgo Periodo (infatti è sulla base del periodo che voglio la discordanza del SalesAmount) e in elemento base scelgo (precedente).

Naturalmente la colonna del Delta relativo al periodo 200708 rimane vuota, perché sarebbe l’incremento di quel periodo sul periodo precedente, che non esiste in tabella, perché i dati partono dal 200708.

Se aggiungiamo una seconda volta SalesAmount come semplice Somma, otteniamo una tabella come quella richiesta dal cliente. Qualche opportuna formattazione alle celle e ci siamo.

Per esercitarvi, potete scaricare i dati di esempio (che appartengono al database AdventureWorks) in formato xlsx (dimensione: 820 KB).