<< Back

Creare valori inesistenti con Alteryx

Classico problema: lavoro con i mesi e nel mio dataset manca il mese 08, perché ad agosto non si lavora. Se plotto i mesi su Tableau, l’ottava barra non sarà il mese 08, ma il mese 09, faremo un salto da 07 a 09, perché se un dato non esiste, Tableau non se lo può di certo inventare. Vediamo come sfruttare Alteryx per creare i valori inesistenti in automatico.

Nel caso specifico abbiamo 3 paesi (Italia, Germania e Inghilterra – come nelle barzellette!) e abbiamo la sequenza dei mesi.

Per la Germania abbiamo solo il mese 1 e il mese 2. Il terzo mese manca, lo vogliamo aggiungere e – nella più semplice delle ipotesi – potremo lasciare un valore pari a null (sono inesistenti), in questo esempio andremo in più a vedere come rimpiazzare il numero della colonna Valore con il valore del mese precedente. Perché quella che stiamo vedendo è una somma cumulativa, quindi se nel mese 3 non ho nessun numero, voglio la somma del precedente (77) più zero.

Scarica il workflow per seguire l’articolo step by step.

Prima di tutto dobbiamo crearci un elenco univoco delle country e dei month, e abbinarli tutti con tutti, di modo da creare tutte le combinazioni Country/Month necessarie, grazie all’Append Tool che ci permette di creare delle join cartesiane:

Quella colonna Month forzato sarà la colonna mese che da adesso in poi guiderà la mia analisi. La colonna Month del dataset originale potrà essere deselezionata più avanti.

Lo step successivo è quello di andare ad unire questa tabella con i valori forzati con il nostro dataset iniziale, tramite una join in cui imposteremo come campi di match Country forzata=Country e Month forzato=Month.

Dato che Germania mese 3 esiste solo nella tabellina con i valori forzati, per fare una join sensata dovrò fare una LEFT OUTER JOIN, creando una union tra i connettori J e L:

Ok, ora abbiamo effettivamente tutte le righe Country e Month che vogliamo per non avere “buchi” in Tableau. Però, dato che nella realtà i valori sono inesistenti, abbiamo un mucchio di celle null.

Possiamo riempire le celle null con il valore che trova scritto nella cella sovrastante.

Dovremmo quindi utilizzare un Multi-Row formula. e Ripetere l’operazione su 3 colonne, quindi usare 3 Multi-Row formula.

E se le colonne sono tante? E se le colonne un domani potessero aumentare? Avremmo bisogno di un Multi-Field-Multi-Row Formula, che però non esiste. E non esiste perché ci basta in realtà ribaltare la tabella in modo da avere un’unica colonna, utilizzare il Multi-Row con la logica “se è null, allora riga precedente” e poi ribaltare di nuovo la tabella nella sua forma originale.

Con un Transpose tool possiamo ribaltare le ultime tre colonne, in modo da avere un’unica colonna Name che contiene gli header e una colonna Value che contiene i valori della tabella, e ordinare i dati affinché la logica “se null, allora quello che trovi scritto subito sopra” abbia senso:

Utilizzare il Multi-Row per riempire le righe nulle:

Ed infine utilizzare un CrossTab per andare a ribaltare nuovamente la tabella nel suo layout originale, ricreando le 3 colonne Country, Month, Valore:

Poi un Select per rimuovere le colonne inutili e rinominare le colonne a nostro piacimento ed ecco il risultato finale:

E la cosa interessante è che questo flusso si autocompleterà sempre da solo. Iniziando con i summarize e l’append che creano tutte le combinazioni possibili necessarie, e andando ad utilizzare il Multi row formula su un’unica colonna ribaltata col Transpose, il flusso completerà sempre i nostri dati per sbarazzarci delle celle inesistenti.

Federica Ferrarini

Trainer - Milano

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.