Quest'oggi vorrei introdurre un semplice caricamento dati mediante PowerQuery, con l'aggiunta di alcune operazioni di pulizia e di raggruppamento. Utilizzeremo un semplicissimo file excel che ho preparato per l'occasione, e che lascio come allegato per coloro che vorranno seguire passo passo il tutorial.
Step1_Caricamento Dati
Partendo dalla base direi di caricare i records che troverete all'interno del file. Il foglio in questione si chiama "Dati" (fantasia portami via
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
Se apriamo il file troveremo 5 campi (le colonne di un qualsiasi dataset saranno chiamate in questo modo):
1) Segment
2) Country
3) Product
4) Discount Band
5) Units Sold
La base dati non è in formato tabellare, anche se la formattazione fornita porterebbe a pensarlo.
Per ora la lasciamo così come è, semplicemente la selezioniamo e seguiamo il seguente percorso per giungere al comando che ci interessa:
Dati --> Da tabella/intervallo
![Immagine](https://i.postimg.cc/7Lt6GB3C/DaTab.png)
Si aprirà una finestra che indicherà il range dell'intervallo da "prelevare" e se, quest'ultimo, ha delle intestazioni. Diamo conferma in questo caso, e verremo così rimandati all'interfaccia di PowerQuery.
Questa interfaccia contiene nella schermata centrale una videata con quelli che sono i dati estrapolati.
Step2_Pulizia Dati
La prima cosa che suggerisco di fare è quella di mettere in ordine il "materiale di lavoro", questo per un semplice motivo: con tutti i dati disposti e formattati correttamente le analisi risulteranno migliori.
Ecco alcune buone prassi da mantenere:
1) Rinominare la Query --> per me è una delle prime cose da fare perché anche se al momento non serve, fidatevi che quando avrete una decina di query attive nella stessa cartella di lavoro, vedere nomi come Dati(1), Dati(1.1), Foglio(4), non aiuta.
Per rinominare la query non bisogna far altro che selezionare nella sezione "Proprietà" visibile sulla destra, il campo "Nome" e modificarlo in modo tale da renderlo quanto più riconoscibile all'utilizzatore. Io la chiamerò "RaggruppamentoDati".
2) Rivedere il formato dei vari campi --> guardando la tabella nella schermata centrale vediamo che i nomi dei campi sono quelli forniti nella base dati che abbiamo estrapolato. Sulla sinistra di ciascuna etichetta c'è un piccolo riquadro con un simbolo che identifica il tipo di formato che PowerQuery ha assegnato. In generale il motore di PQ (PowerQuery) è abbastanza smart da assegnare il formato corretto, ma consiglio sempre di rivedere ciascun campo per accertarsi della bontà del modello dati che andremo a caricare.
![Immagine](https://i.postimg.cc/zGX8CCXT/Converti-Formato.png)
Questo qui sopra è un esempio di formato dati assegnato al campo "Units Sold" (Unità Vendute). Per scopi puramente pratici andremo a cambiare il formato, perché lo vogliamo visualizzare non in formato decimale ma intero. Selezioniamo dunque il riquadro che contiene il simbolo del formato, e dalla lista che apparirà selezioniamo numero intero.
Il sistema ti chiederà di confermare quanto da te richiesto e questo perché come accennavo prima PQ aveva già pensato ad un formato dati per quel campo, e tu gli stai ora dicendo che quello pensato da lui non è corretto e dunque lo vuoi cambiare.
Lui ti chiede conferma di questa cosa, dunque premete sul comando per "Sostituire il formato corrente" ed avrete il nuovo formato impostato secondo quanto da voi richiesto.
!!! Importante: Un altro passaggio fondamentale, e che consiglio, è quello di rivedere i campi caricati a sistema, perché magari per convenienza carichiamo tutta la tabella, ma poi vogliamo solo che vengano utilizzate determinate colonne, dunque alcune devono essere rimosse. Le modalità per rimuovere le colonne presentano delle funzionalità interessanti a cui è bene dedicare un altro piccolo tutorial più avanti.
Step3_Raggruppamento Dati
Supponiamo che quanto mostrato precedentemente sia a noi sufficiente per aver reso il nostro dataset ordinato e pronto all'uso. Ora arriviamo all'obiettivo del presente tutorial:
Raggruppare i dati
Nel nostro dataset ci sono delle righe che riportano le stesse informazioni per i primi 4 campi, con l'unica differenza data dalla quantità venduta (Units Sold).
Non vogliamo mantenere questo livello di dettaglio, vogliamo invece accorpare righe uguali e far si che nella cella relativa alla quantità ci sia la somma delle quantità riportate nelle righe oggetto del raggruppamento. Per farla semplice supponiamo di avere due righe identiche ma che differiscono solo per il terzo campo:
Agente | Prodotto | Quantità
A | ProdottoA | 100
A | ProdottoA | 200
Quello che vogliamo ottenere è:
Agente | Prodotto | Quantità
A | ProdottoA | 300
Per farlo, nel nostro modello, non bisogna far altro che selezionare tutte e 4 le colonne iniziali. Selezioniamo la prima colonna sulla sinistra poi spostiamo il cursore del mouse sulla destra e premendo Shift (tasto per il maiuscolo) selezioniamo l'ultima colonna prima del campo Quantità e avremo così tutte le colonne utili al raggruppamento selezionate.
Ora ricerchiamo il menu: "Trasforma"
e clicchiamo sulla prima voce che compare sulla sinistra: "Raggruppa per"
![Immagine](https://i.postimg.cc/8PcZLsgj/Raggruppa-Per.png)
Comparirà un'interfaccia come quella che mostrata nell'immagine che segue, la quale riporta le seguenti opzioni:
- Ci saranno dei menù a tendina che riporteranno il nome dei campi che vogliamo andare a raggruppare (in estrema sintesi è come se Power Query crei delle combinazioni univoche con i valori che ciascun campo riporta, e sulla base di queste combinazioni creerà il raggruppamento andando ad eseguire una formula di aggregazione (somma, media, ecc). I campi che vediamo sono corretti dunque scendiamo alla sezione seguente.
- Ci saranno tre campi disposti in riga:
1) Nome nuova colonna --> è il campo che utilizziamo per inserire il nome che vogliamo dare alla colonna che conterrà le Quantità Vendute raggruppate (la quale sostituirà quella originale presente nel dataset: Units Sold). Io la chiamerò: Qtà Tot
2) Operazione --> è il campo che indica che tipologia di operazione vogliamo andare a svolgere con i dati presenti all'interno del campo da aggregare, in questo caso selezioniamo somma.
3) Colonna --> bisogna selezionare il campo da voler aggregare, in questo caso Units Sold
![Immagine](https://i.postimg.cc/hv5b2bRh/Conferma.png)
Diamo conferma ed in poco tempo avremo la nostra nuova colonna con il raggruppamento.
Ora se avete fatto caso, una volta caricati i dati nel modello in basso a sinistra compare una stringa di testo che indica quante sono le righe caricate (se superano una certa soglia riportano un messaggio del tipo: caricate più di 999 righe). In questo caso le righe iniziali, poste a sistema erano 700. A seguito dell'operazione sono diventate 372. Questo a dimostrazione del fatto che alcune righe erano effettivamente dei doppioni se non per la Quantità Venduta.
Step4_Caricamento query
Ora che la nostra Query ha lavorato in modo corretto è necessario caricare i dati che essa contiene a sistema. Per le modalità di caricamento saranno pubblicati nuovi Tutorials in futuro. Per non dilungarmi troppo ora caricherò i dati in formato connessione, e per farlo non bisogna far altro che selezionare dalla voce "Home" l'opzione "Chiudi e carica" con l'accortezza di premere sulla freccia che punta in basso e che apre un menù con l'opzione "Chiudi e carica in.."
Una volta premuto si seleziona la voce "solo connessione" e si preme conferma.
Prima di salutarci ci terrei a dirvi che quello che vorremmo ottenere da questi tutorials è uno scambio attivo con i nostri utenti. Questo perché noi potremmo anche avere delle idee su quali argomenti portare all'interno di queste sezioni dedicate all'apprendimento, ma ancora meglio sarebbe avere un vostro feedback in merito a quegli argomenti che avete trovato più ostici da affrontare, così da potervi preparare del materiale mirato, fondato su esigenze vere.
Per poterlo comunicare non dovete far altro che lasciare dei messaggi all'interno della sezione "Feedback" (la troverete al seguente link: Qui)
Colgo l'occasione per ringraziarvi dell'attenzione posta nel leggere questo breve tutorial.
A presto
![Waving :wave:](./images/smilies/icon_wave.gif)
Andrea