Applicare la Funzione Unpivot in Google Sheets e Visualizzare i Dati in Looker Studio
Applicare la Funzione Unpivot in Google Sheets e Visualizzare i Dati in Looker Studio
Esigenza
Nel mondo del digital marketing e dell’analisi dei dati, è comune lavorare con dataset complessi che richiedono trasformazioni prima di poter essere utilizzati per analisi approfondite. L’esigenza in questo caso era di trasformare una griglia di dati organizzata in Google Sheets in un formato più flessibile e analizzabile, noto come unpivot. Questo processo è fondamentale per permettere una visualizzazione e un’analisi efficace dei dati in strumenti come Looker Studio.
Che cos’è il Processo di Unpivot?
Il processo di unpivot è una tecnica di trasformazione dei dati utilizzata per convertire un dataset ampio (wide format) in un formato lungo (long format). Nel formato ampio, i dati sono distribuiti su molte colonne, spesso rappresentando diverse categorie o variabili per ciascuna riga. Nel formato lungo, ogni riga rappresenta un singolo punto dati con più attributi.
Esempio di Formato Ampio:
Mese | Settimana | Giorno | Cliente 1 | Cliente 1 | Cliente 2 | Cliente 2 | Cliente 3 |
---|---|---|---|---|---|---|---|
Attività 1 | Attività 2 | Attività 1 | Attività 2 | Attività 3 | |||
luglio | 27 | 2024-07-01 | 2 | 4 | 3 | 4.5 | 7 |
Esempio di Formato Lungo (Unpivotato):
Cliente | Attività | Mese | Settimana | Giorno | Ore |
---|---|---|---|---|---|
Cliente 1 | Attività 1 | luglio | 27 | 2024-07-01 | 2 |
Cliente 1 | Attività 2 | luglio | 27 | 2024-07-01 | 4 |
Cliente 2 | Attività 1 | luglio | 27 | 2024-07-01 | 3 |
Cliente 2 | Attività 2 | luglio | 27 | 2024-07-01 | 4.5 |
Cliente 3 | Attività 3 | luglio | 27 | 2024-07-01 | 7 |
Perché Usare l’Unpivot?
È consigliabile trasformare i dati tramite UnPivot (appiattimento dei dati) per inserirli in un formato matrice, dove tutti i valori simili sono raccolti in un’unica colonna. Questo processo è fondamentale per l’analisi e la visualizzazione efficace, poiché ogni riga rappresenta un’entità unica e facilmente gestibile. Riorganizzando le coppie attributo-valore e “scomponendole” in un formato lineare, si facilita la creazione di grafici e report più flessibili e accurati. In questo modo, operazioni come aggregazioni, confronti e analisi diventano molto più intuitive, poiché i dati sono strutturati in modo standardizzato e coerente.
Limitazioni di Google Sheets e Looker Studio
Sia Google Sheets che Looker Studio non dispongono di una funzione Unpivot integrata, come invece molti strumenti avanzati di ETL (Extract, Transform, Load) offrono. Per superare questa limitazione, è possibile utilizzare Google Apps Script per automatizzare il processo di unpivot e preparare i dati per l’analisi.
Soluzione: Applicazione della Funzione Unpivot con Google Sheets e Google Apps Script
Per automatizzare il processo di unpivot, abbiamo utilizzato Google Apps Script. Questo ha permesso di trasformare la griglia di dati in un formato lungo, dove ogni riga rappresenta un singolo valore associato a un cliente, un tipo di attività, una data specifica, e un valore.
Codice dello Script:
function unpivot() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Foglio1');
var targetSheet = ss.getSheetByName('Unpivoted');
if (!targetSheet) {
targetSheet = ss.insertSheet('Unpivoted');
} else {
targetSheet.clear();
}
var data = sheet.getDataRange().getValues();
var headers = data[0].slice(3); // Intestazioni clienti dalla colonna D in poi
var subheaders = data[1].slice(3); // Intestazioni attività dalla colonna D in poi
var rows = data.slice(2); // Dati a partire dalla terza riga
// Imposta intestazioni nel foglio "Unpivoted"
targetSheet.appendRow(['Cliente', 'Attività', 'Mese', 'Settimana', 'Giorno', 'Ore']);
var output = []; // Array per raccogliere tutte le righe da inserire
for (var i = 0; i < rows.length; i++) {
var mese = rows[i][1];
var settimana = rows[i][2];
var giorno = rows[i][3];
for (var j = 0; j < headers.length; j++) { var cliente = headers[j]; var attivita = subheaders[j]; var valore = rows[i][j + 4]; if (valore > 0) {
output.push([cliente, attivita, mese, settimana, giorno, valore]); // Aggiungi la riga all'array output
}
}
}
// Scrivi tutte le righe in una sola operazione
if (output.length > 0) {
targetSheet.getRange(2, 1, output.length, output[0].length).setValues(output);
}
}
function onEdit(e) {
var sheet = e.source.getActiveSheet();
if (sheet.getName() === 'Foglio1') {
unpivot();
}
}
Spiegazione dello Script
- unpivot() Function:
- Caricamento del foglio e dei dati: Lo script carica il foglio “Foglio1” e crea o ripulisce il foglio “Unpivoted”.
- Estrazione delle intestazioni e dei dati: Le intestazioni dei clienti e delle attività sono estratte dalle prime due righe, e i dati dalle righe successive.
- Impostazione delle intestazioni nel foglio “Unpivoted”: Viene aggiunta una riga di intestazioni al foglio “Unpivoted”.
- Iterazione sui dati: Lo script itera su ogni riga di dati e, per ogni colonna di attività, crea una nuova riga nel foglio “Unpivoted” con i dettagli del cliente, attività, mese, settimana, giorno e valore.
- Ottimizzazione delle operazioni: Invece di usare
appendRow
in ogni iterazione (che rallenterebbe il processo), lo script raccoglie tutte le righe in un arrayoutput
e le inserisce in una sola operazione, migliorando le performance.onEdit(e) Function: - Esecuzione automatica: Questa funzione viene eseguita automaticamente ogni volta che il foglio “Foglio1” viene modificato, assicurando che la tabella unpivot sia sempre aggiornata.
Aggiornare Manualmente la Tabella Unpivot
Se preferisci eseguire l’aggiornamento manualmente anziché automaticamente, puoi rimuovere il trigger onEdit
e decidere tu quando eseguire lo script. Per fare ciò, segui questi passaggi:
- Rimuovi il Codice onEdit: Elimina la funzione
onEdit
dal codice:
function onEdit(e) {
var sheet = e.source.getActiveSheet();
if (sheet.getName() === 'Foglio1') {
unpivot();
}
}
Ora, lo script verrà eseguito solo quando lo lanci manualmente.
- Aggiungi un Pulsante nel Foglio Google Sheets:
- Vai su Inserisci > Disegno o Inserisci > Immagine nel menu di Google Sheets.
- Crea una forma (ad esempio, un rettangolo con il testo “Aggiorna Unpivot”) o inserisci un’immagine.
- Clicca con il tasto destro sulla forma o immagine e seleziona Assegna script.
- Digita il nome della funzione
unpivot
per associarla al pulsante.
In questo modo, ogni volta che cliccherai sul pulsante, verrà eseguito lo script e aggiornerà la tabella unpivot.
Conclusione
L’applicazione della funzione Unpivot tramite Google Sheets e Google Apps Script ha permesso di trasformare dati complessi in un formato lungo facilmente analizzabile. Questo processo è fondamentale per integrare e visualizzare i dati in Looker Studio, rendendo possibile la creazione di report e dashboard interattivi.
Anche se Google Sheets e Looker Studio non dispongono nativamente di una funzione Unpivot come altri strumenti di ETL, la flessibilità offerta da Google Apps Script consente di colmare questa lacuna. Attraverso lo script ottimizzato, è possibile gestire grandi volumi di dati in modo efficiente e aggiornare manualmente o automaticamente la tabella secondo le proprie esigenze.
Consulenza Digitale per la Tua Crescita
Consulenza Digitale per la Tua Crescita
Offriamo consulenze specializzate per sviluppare strategie digitali innovative. Con un focus particolare sull’intelligenza artificiale, aiutiamo il tuo business a ottimizzare processi e migliorare le performance online.