<< Back

Tableau: Join su calculated field per comparare diversi anni

Una delle analisi più frequenti, in campo aziendale e non solo, è la comparazione dei valori tra diversi anni, in particolare l’year over year, in cui vengono paragonati i valori dello stesso mese in due anni consecutivi. Solitamente in database ci troviamo una colonna unica per le date o, in alternativa, una colonna per il mese e una per l’anno. Per il nostro calcolo sarà probabilmente necessario usare delle LOD o Table calc.

Esiste però un’alternativa: usare la possibilità di join tra datasource per andarci a creare due colonne di comparazione (una per anno), in modo da avere possibilità infinite di creare calculation con semplicità.

Come fare? Facciamo un esempio. Partiamo da un datasource esemplificativo in Excel, in cui abbiamo la nostra colonna “Anno”, una per il “Mese” e la terza colonna con i valori.

Apriamo Tableau e connettiamoci come sempre al nostro file excel:

Connect →Excel

Una volta aperto come possiamo sfruttare i dati per fare comparazioni tra i valori del 2010 e quelli del 2011? Possiamo duplicare la fonte dati, creando una join del nostro datasource “su se stesso”. Applicando le giuste key field riusciremo a creare due colonne, una per ogni anno.

Costruiamo la nostra tabella di analisi

Passo 1) Duplichiamo il datasource

Passo 2) Settiamo le key field, in modo che [Anno] del Foglio 1 sia uguale ad [Anno]-1 del secondo foglio, come segue:

Clicchiamo sulla Join e sul primo datasource, poi su “Edit key calculation” e inseriamo: DATE(“01/” + STR([Mese]) + “/” + STR([Anno]))

Stesso procedimento sul secondo datasource, inserendo la seguente calculation: DATE(“01/” + STR([Mese (Foglio11)]) + “/” + STR([Anno (Foglio11)]-1))

Ora i nostri dati appariranno così:

Passo 3) Possiamo dunque cominciare a lavorare su un nuovo Sheet per costruirci la nostra comparazione. Prima di tutto dobbiamo crearci una nuova dimension che rappresenti la nostra data, a partire dalle dimension [Anno] e [Mese]. Ecco il calcolo:

Ora rinominiamo le nostre due measures [Value] per avere più chiaro a quali anni si riferiscono, chiamiamole [Value 2010] e [Value 2011]. Una volta fatta questa operazione possiamo iniziare a costruire la nostra tabellina di comparazione. Inseriamo [Mesi 2010] e [Mesi 2011] in row e settiamoli come discrete. Ora aggiungiamo alla nostra view anche [Value 2010] e [Value 2011] per avere i due valori affiancati.

Passo 4) A questo punto possiamo andare a calcolarci con semplicità la KPI, avendo due measures con cui è possibile creare calculation in maniera piuttosto semplice:

Inseriamo anche [KPI] nella view. Ora possiamo creare un nuovo calcolo che ci servirà per dare un colore e una shape alla KPI, in modo da evidenziare in modo più chiaro il risultato della nostra analisi. Costruiamo quindi una nuova calculation, che chiameremo [KPI color and shape]:

IF [KPI]>0 THEN “Positive”
ELSEIF [KPI]=0 THEN “Stabile”
ELSEIF [KPI]<0 THEN “Negative”
END

Non ci resta che scegliere “shape” in Markes e decidere colori e shape. Ecco il risultato finale:

Potete trovare molti altri interessanti post sul nostro blog.

Seguitemi anche su Twitter e Tableau Public.

Filippo Mastroianni

Trainer - Milano

2 thoughts on “Tableau: Join su calculated field per comparare diversi anni

  1. In questo modo si duplicano tutti i campi , no sarebbe piú semplice e altrettanto efficace creare delle colonne “anno” con IF YEAR = 2011 THEN Value END?

    1. Grazie del suo commento Paolo. In questo caso potrebbe essere una soluzione quella da lei proposta. Ci possono essere però diversi motivi per usare questa tecnica, molto più evidenti quando si ha a che fare con un maggior numero di colonne che non nell’esempio. Uno di questi è che il calcolo che suggeriva è statico. Renderlo dinamico richiederebbe l’utilizzo di una LOD. Con la join invece il calcolo è dinamico e funzionerà sempre.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.