<< Back

Da Excel ad Alteryx: trasporre tabelle

Se siete degli utenti Tableau, vi sarete già resi conto da soli che è più comodo avere una tabella come questa

Cattura

che contiene i risultati di un sondaggio sottoposto da un negozio ai propri clienti, in formato trasposto, di modo che le domande siano in un’unica colonna, affiancata da una colonna con relativi voti:

Cattura2

Prima avevamo un’unica riga per ogni sondaggio, ora ne abbiamo 5, una per ogni domanda del sondaggio. Il perché è semplice da dirsi. Una tabella strutturata in questo modo ci permette di spezzare i valori presenti nel nostro grafico, trascinando una sola dimension. La colonna Name è il nome della misura studiata. La colonna Value è il valore della misura.

Cattura3

Se invece apriamo la tabella così com’è in originale, per ottenere lo stesso risultato, dovremo fare un grafico con assi condivisi e inserire nel grafico 5 elementi diversi e sfruttare la funzionalità dei due segnaposti Measure Name/Measure value.

Cattura4

Il risultato che otteniamo è lo stesso alla fine. Ma il primo metodo è molto più comodo.

Quello che vorrei mostrare oggi con questo articolo è come con Alteryx sia possibile, non solo fare tutto quello che facevamo prima con Excel, ma come sia possibile farlo in modo semplice e veloce.

Abbiamo due colonne della nostra tabella che devono rimanere fisse come sono, ma le righe si devono moltiplicare per il numero delle domande dei sondaggi: 5. E poi dobbiamo riportare in verticale il contenuto della matrice della tabella a doppia entrata.

Io lo so fare utilizzando 3 funzioni INDICE e una funzione MATR.SOMMA.PRODOTTO:

Cattura5

Non starò a spiegarvi per filo e per segno come funzionano le funzioni di Excel, mi limiterò a spiegarvi la logica che c’è sotto.

ID Negozio = INDICE($A$2:$A$232;INT((4+RIGHE($J$2:J2))/5))

N Sondaggio = INDICE($B$2:$B$232;INT((4+RIGHE($K$2:K2))/5))

Le prime due formule per le colonne “fisse” sono uguali. Il primo intervallo ($A$2:$A$232 e $B$2:$B$232) sono le celle in cui sono presenti i nostri 232 dati nella tabella originale. La seconda parte della funzione serve per dire a Excel di moltiplicare le righe x5 inserendo lo stesso valore che trova nella prima riga. Le scriviamo in J2 e K2 e poi trasciniamo giù per 1162 righe (232 x 5).

Nome =INDICE($C$1:$G$1;1+RESTO(4+RIGHE($L$2:L2);5))

L’intervallo $C$1:$G$1 sono i titoli delle colonne (le domande del sondaggio) nella tabella originale. Questa volta non vogliamo che il valore della prima cella venga copiato uguale in quelle sottostanti, vogliamo che ci vengano restituiti i 5 titoli di colonna in sequenza, ricominciando ogni 5 righe. E infatti la seconda parte della funzione è leggermente diversa.

Valore =MATR.SOMMA.PRODOTTO($C$2:$G$232*($B$2:$B$232=K2)*($C$1:$G$1=L2))

Qui si va già un pò sul complicato. L’intervallo $C$2:$G$232 è la matrice in cui sono presenti i voti dei sondaggi. $B$2:$B$232 è l’intervallo con il numero del sondaggio. $C$1:$G$1 è l’intervallo con i titoli delle colonne. Nella tabella originale.

Senza titolo-1

Detto in parole povere, stiamo chiedendo ad excel di andare a controllare i voti dei sondaggi nella tabella originale e di restituirci il valore che trova nell’intersezione tra la riga che corrisponde al sondaggio 80 (K2) e la colonna che corrisponde a Soddisfazione 1-10 (L2) nella nostra nuova tabella trasposta. Trascianiamo verso il basso per 1062 righe e avremo l’abbinamento domanda/voto.

Un bel lavoretto, che dite?

Ora vediamo come affrontare lo stesso problema con Alteryx. Trasciniamo un Input tool per aprire il file excel e dalla sezione Transform trasciniamo un Transpose tool.

Cattura55Come Key Field scegliamo le colonne che vogliamo lasciare invariate e per le qualsi si moltiplicheranno le righe.

Come Data Field scegliamo le colonne che vogliamo trasporre. Clicchiamo su CTRL+R per mandare in esecuzione e in meno di un secondo Alteryx ci ribalterà la tabella creando una colonna per le domande del sondaggio e una per i voti.

Finito!

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.