Costruisci il tuo primo report interattivo con Microsoft Power BI
Muoviamo i primi passi in Power BI, in modo semplice ma rigoroso, così da poter usare quanto imparato nel lavoro di ogni giorno
Cosa è Power BI?
Power BI è una piattaforma di business intelligence e data analytics sviluppata da Microsoft.
Inizialmente fu progettata come estensione degli applicativi SQL Server (“codename Denali”) [1].
Dal 2013, ossia due anni dopo il lancio in bundle, Microsoft ha ufficializzato il nome in Power BI, collegandolo alla suite Microsoft 365.
Nelle prime release Power BI era una piattaforma che integrava Power Query, Power Pivot, Power View, e Microsoft Excel. Di fatto, la suite base per interagire con database relazionali e creare viste e interrogazioni.
Nel 2015 Power BI viene presentato e distribuito come un prodotto Microsoft stand-alone, riscuotendo grande successo. Secondo Microsoft, oltre 350’000 aziende usano una versione licenziata di Power BI [2].
Power BI consente agli utenti di connettere, trasformare, analizzare e visualizzare dati provenienti da fonti eterogenee. L’obiettivo principale è fornire supporto decisionale tramite dashboard interattive, report dinamici e modelli di analisi visiva. Grande enfasi viene data anche alla sicurezza dei dati, gestibili tramite permessi puntuali, limiti di accesso e condivisione, ai dati, report e dashboard, e diverse modalità di pubblicazione (dalla stampa pdf a vere e proprie app fruibili via mobile).
Power BI non richiede specificatamente capacità avanzate di programmazione, tuttavia il livello di personalizzazione può anche essere molto avanzato (query su database relazionali e non relazionali, personalizzazioni di visual in JavaScript, integrazione con Python ed R, script in linguaggio M e DAX [3]).
Gli elementi di Power BI
Power BI è una piattaforma estesa e complessa, costituita da una pluralità di applicativi che dialogano tra loro mediante le utenze Microsoft associate.
Sebbene l’utilizzo in produzione preveda la sottoscrizione di un’utenza (per pubblicare app, gestire workspace e condividerli e utilizzare le feature avanzate della piattaforma), può essere installato localmente (Power BI Desktop) in modo gratuito.
Le componenti principali di Power BI sono:
- Power BI Desktop: per sviluppo locale e modellazione (Authoring). Include Power Query (Data Ingestion, Data Slicing).
- Power BI Service: per condivisione, collaborazione, aggiornamenti e attività tenant (Cloud & Sharing).
- Gateway: bridge con dati on-premise (Data Integration).
- Power BI Mobile: accesso da dispositivi mobili (App & Mobile).
- Report Server: per reporting on-premise (Pagination & Compliance).
- Power BI Embedded: per integrazione in app (Dev / SaaS).
- API/SDK: automazione, DevOps (Enterprise).
I connettori per le fonti dati
Power BI nasce con una vastissima schiera di connessioni dati preimpostate, letteralmente dalla A di Access alla Z di Zucchetti. Sono inclusi naturalmente tutti i top player (oltre ovviamente il mondo Microsoft e Azure, GitHub, Google, Amazon, Hadoop, IBM, MariaDB, MongoDB, Oracle, Salesforce, SAP), oltre a un novero di servizi più di nicchia come Asana, servizi di mail automation e analytics, Twilio, Palantir etc.
Oltre alle connessioni specifiche, sono poi disponibili astrazioni per connettersi con servizi API REST o web, file csv, XML, e altri aggregati dati che ricalcano strutture dati analoghe.
La lista completa con le rispettive funzionalità è disponibile nella sezione Connettori.
I visual
Anche per quanto riguarda gli elementi di data visualization la copertura è ampia.
Sono disponibili tutti i grafici “classici” (linee, istogrammi, grafici a barre, a torta etc.), modelli specifici per la Business Intelligence o Data Science, come Treemap, Decomposition Tree, Ribbon, Waterfall, Scatter.
Vi sono poi grafici riassuntivi, utili per visualizzazioni a livello Executive, come Gauge (“manometro”), KPIs, Card e elementi testuali e soglia.
È possibile inoltre scaricare e utilizzare visuals dallo Store di Power BI. Molte sono gratuite, alcune richiedono pagamenti aggiuntivi. In generale Power BI supporta comunque il download di template e modelli, sia da terze parti, che creati e pubblicati dall’azienda stessa.
Mediante l’integrazione con Microsft Copilot, è possibile anche creare visualizzazioni e elementi grafici (come riassunti testuali dinamici) generati tramite AI, attivabili sia lato sviluppo che lato utenza, in modo interattivo.
Oltre a questo, è possibile infine creare da zero grafici e visuals, utilizzando le librerie basate su JavaScript come D3, o integrato visuals in Python con Matplotlib o in R.
Iniziamo la costruzione del report in Power BI
Iniziamo la costruzione del nostro primo report in Power BI. Anche se nel linguaggio comune si usa spesso il termine “dashboard” per indicare una panoramica di oggetti visivi, in Power BI Dashboard e Report sono oggetti diversi e ben precisi [4].
- Report: è una rappresentazione grafica di uno o più dataset, costituita da una o più pagine o tab, dinamica, interattiva, e in continua evoluzione, tipicamente prodotta da un analista o sviluppatore. Vive tipicamente in Power BI Desktop.
- Dashboard: è una raccolta (“pin”) di elementi da uno o più report, pensata per non essere interattiva, ma solo letta, formata da una sola pagina, tipicamente consultata dagli utenti finali. Vive in Power BI Service.
Installazione di Power BI
Sebbene sia possibile utilizzare Power BI Service per la creazione di report, ovvero, lavorando direttamente dal client web, le funzionalità complete sono presenti solo su Power BI Desktop.
Installare localmente l’applicativo è sicuramente il primo passo da compiere.
Power BI purtroppo è piuttosto limitato rispetto alla compatibilità tra sistemi operativi. Per eseguirlo su ambienti iOS o Linux, probabilmente la cosa più logica è creare un ambiente virtuale installando Microsoft Windows.
Per lavorare poi alle integrazioni tra dashboard e report, è utile avere un account Microsoft. In tal caso il suggerimento è di creare un account personale, non collegato ad utenze aziendali, così da evitare l’attivarsi di eventuali piani e/o permessi, e poter sperimentare in libertà.
L’installazione per il resto è elementare. Lo zip a oggi pesa circa 800 MB, il software installato circa 2,5 GB. Durante l’uso il prodotto può dimostrarsi avido di risorse, specialmente gestendo molte visual e query complesse. L’ottimizzazione comunque è parte integrante del lavoro con Power BI e molti sono gli strumenti nativi a disposizione per migliorare le performance di query e visual.
Il link ufficiale è il seguente Download Microsoft Power BI.
Lo Star Schema
Il primo passaggio per la creazione di un report su Power BI è avere una sorgente dati da analizzare.
Questo elemento è fortemente connaturato alla ragione sottostante la creazione del report, e potrebbe essere sia un insieme di dataset aziendali, con caratteristiche disomogenee, e gestiti tramite query, così come un semplice file Excel utilizzato per tracciare le proprie spese casalinghe.
Per fornire uno spunto didattico interessante, ma tuttavia facilmente riproducibile in un ambiente locale e riproducibile, utilizzeremo un file Excel piuttosto corposo, che trasformeremo mediante Power Query in un modello a stella.
Il modello a stella (Star Schema) è un modello canonico [5] per la struttura di un data warehouse (DWH), basata sulle relazioni (tipicamente “one-to-many”) tra tabelle fattuali (Fact Table) e dimensionali (Dimensions).
Lo Star Schema è un elemento architetturale fondante per operare su Power BI [6] (sebbene non sia vincolante o obbligatorio).
Nativamente come sopra precisato lo schema a stella è proprio di aggregazioni di base dati strutturate come DWH, e non file Excel. I file Excel tipicamente vengono importati su Power BI come singola fonte dati.
Tuttavia il processo stesso di creazione di uno Star Schema da un singolo file ha forte valenza didattica, anche se ci esporrà ad alcune forzature.
Data Ingestion su Power Query
Apriamo Power BI, e sulla tab Home, selezioniamo “Get Data
” > “Web
“. Inseriamo il link alla sorgente dati che abbiamo selezionato per questo articolo (https://github.com/amitchandakpbi/powerbi/).
Possiamo usare la connessione “Anonymous
” come viene proposta. Clicchiamo sull’unica “Table
” che viene presentata, e poi su “Load & Transform
“.
Apparirà sullo schermo la vista grafica della tabella. Se non sono già abilitate, nella barra multifunzione (Ribbon) andiamo su “View
“, e abilitiamo nella sezione “Data Preview
” “Column Quality
“, “Column Distribution
” e “Column Profile
“. In basso, nel footer dell’app, clicchiamo anche su “Column profiling...
” e selezioniamo l’altra opzione, “...on entire data set
“.
Questo consente di avere una panoramica del dato, sia a livello tabellare che delle singole colonne.
Nella sezione a destra dello schermo vediamo “Properties
” e “Applied Steps
“. Quest’ultimo pannello consente di navigare e nel caso annullare le azioni fin qui fatte. Sempre in questo pannello, la prima riga è sempre “Source
“; cliccando sull’ingranaggio, possiamo modificare il percorso della sorgente dati.
Tra le varie opzioni di Power Query, tutte utili se non fondamentali, notiamo la sezione “New Query
” in Home, che consente di aggiungere altre sorgenti dati, e la sezione “Parameters
“, che consente di creare connessioni dinamiche.
Nel pannello invece di sinistra rinominiamo la tabella come “Sales Base
“. Facciamo poi tasto destro (RC da ora in avanti) e applichiamo “Reference
“. Referenziare una query permette di creare un duplicato della tabella mediante un puntamento alla query nativa, senza duplicare passaggi.
Questo si nota cliccando sulle due tabelle; solo “Sales Base
” espone una query completa. “Item
” espone solo un puntamento. D’altra parte in tal modo le due tabelle saranno tra loro collegate.
Creiamo la prima dimensione – Item
Selezioniamo le colonne da “item_id
” a “Brand
” (tasto shift o CTRL per selezioni multiple), e sulla selezione, RC e “Remove other columns
“. Tra i diversi modi di selezionare le colonne, alcuni sono temporanei (all’aggiornamento del dataset, le colonne ricompaiono); altri, come “Remove other columns
” e “Choosee columns
” sono persistenti.
Poi RC su “item_id
” e “Remove duplicates
“. Vedremo modificare i valori nella sezione di analytics per la colonna (“Column Distribution
” e “Column Quality
“).
Ora abbiamo la colonna Order Id
che si presta ad essere usata come chiave univoca (Primary Key) [7].
Creiamo la seconda dimensione – Geography
Riprendiamo gli step precedenti, quindi “Sales Base
“, “Reference
” e otteniamo una nuova tabella che nominiamo “Geography
“.
Questa volta selezioniamo “City
“, “State
“, “Region
” e “loc_id
” e nuovamente “Remove other columns
“.
Rimuoviamo i duplicati dalla colonna “City
“. Vediamo che “loc_id
” riporta di nuovo valori unici.
Creiamo la sales fact table e la terza dimensione – Region
Ora dobbiamo seguire un percorso un poco più complesso per ottenere la tabella relativa alla dimensione “Order type
“. Sostanzialmente dobbiamo mantenere l’ottimizzazione delle diverse query evitando duplicazioni superflue, e nel contempo generare connessioni che siano tra loro significanti.
Referenziamo nuovamente “Sales Base
“, poi selezioniamo la colonna “Region
“, “Remove other columns
“, “Remove duplicates
“.
Andiamo sul Ribbon, “Add Column
“, “Index Column"
, “Start from 1
“. Ora abbiamo un indice univoco per la regione. Chiamiamo questa nuova tabella “Region
” e questa nuova colonna creata “Region Id
“.
Ora torniamo su “Sales Base
“, Ribbon, a destra per “Merge Queries
“, “Merge as new
” e scegliamo la nostra nuova tabella "Region
” nel dropdown per il join. Su entrambe le preview delle tabelle, scegliamo la colonna “Region
“, che si evidenzierà in grigio. Lasciamo il “Join kind
” impostato (Left outer)[8] e diamo ok.
Vedremo apparire una nuova tabella, “Merge1
“, che contiene la colonna “Region.1
” alla sua estremità. Rinominiamo la tabella come “Sales Fact
“. Entriamo nella tabella, scorriamo fino alla nuova colonna “Region.1
“. Clicchiamo su di essa e notiamo l’icona particolare al posto del dropdown. Cliccando su di esso apparirà la possibilità di espanderla (“Expand
“). Selezioniamo solo la voce “Region Id
” e spuntiamo la voce “Use original column name as prefix"
. Il risultato è chiaro: abbiamo creato un id per la regione. Chiamiamo questa colonna analogamente “Region Id
“.
Torniamo ora sulla tabella “Region
” precedente e modifichiamo la colonna “Index
” in “Region Id
“.
Creiamo la quarta dimensione – Payment
Abbiamo abbastanza storia per replicare. Seguendo nuovamente i passi sopra, referenziando “Sales Base
“, ma al posto di “Region
“, interverremo sulla colonna “Payment Method
“.
Al momento di creare la query in modalità “Merge
“, avendo questa volta già la tabella, dovremmo selezionare “Merge
” e non più “Merge as new
“, naturalmente.
Ottenuta la colonna, nuovamente espandiamo come sopra.
A questo punto possiamo anche uniformare i nomi delle colonne, allineando le convenzioni (es underscore, spazi, maiuscole, abbreviazioni etc.,) in modo che tutto sia consistente anche per future implementazioni.
Applichiamo e trasformiamo
Siamo pronti a tornare in Home e cliccare “Close & Apply
“. Atterreremo su Power BI desktop.
Proseguiamo sul tab “Model view
” a sinistra del nostro schermo. Se non abbiamo commesso errori, vedremo tutte le nostre tabelle.
Proseguiamo, abbiamo già fatto un lavoro importante.
Data model su Power BI
Creiamo le relazioni tra le tabelle
Vedremo alcune relazioni create automaticamente da Power BI. Non sono corrette, cancelliamole.
Spostiamo poi da un lato la tabella originale “Sales Base
” e rendiamola invisibile cliccando sull’icona occhio.
Disponiamo ordinatamente, a guisa di stella appunto, le restanti cinque tabelle.
Creiamo le prime relazioni, trascinando i singoli campi uno sull’altro, ovviamente nel rispetto delle relazioni necessarie.
Item[Item_id] con Sales Fact[item_id], 1:*, Single.
Region[Region_Id] con Sales Fact[Region_Id], 1:*, Single.
Payment Method[Payment Method id] con Sales Fact[Payment Method id], 1:*, Single.
Geography[loc_id] con Sales Fact[loc_id], 1:*, Single.
Salviamo il file.
Se abbiamo fatto un buon lavoro, dovremmo vedere una schermata del genere:
Ottimizziamo il dato
Andiamo nella vista tabella (Table view
) e diamo uno sguardo alle tabelle che abbiamo creato. Notiamo che la colonna “Order date
” riporta anche l’ora, che non ci interessa al momento. Inoltre le colonne numeriche riportano infiniti decimali.
Selezioniamole una per una e in “Column tools
” che appare nel Ribbon, poniamo 2 decimali. Per il campo “Discount
“, poniamo la formattazione come campo percentuale “%”.
Inoltre torniamo in “Model View
“, “Transform data
” e sulla tabella “Sales Base
“, alla colonna “Order_Date
“, RC e trasformiamo in tipo “Date
” (invece che “Date/Time
“). Applichiamo la trasformazione. Questo passaggio ci aiuta a capire che possiamo tornare su Power Query in qualsiasi momento, qualora notassimo interventi anche successivamente alla prima fase di trasformazione.
Torniamo su “Model View
” e creiamo dei raggruppamenti visivi. Ad esempio, selezioniamo “SalesFact[Category]
” e nel pannello “Properties
” che si aprirà, cambiamo il nome nel campo “Display folder
” in “Categories
“. Si creerà una cartella. Trasciniamoci dentro le altre colonne “Sub_Category
” e “Sub_Sub_Category
“. Questo non ha alcun impatto sui dati ma ne consente una migliore visualizzazione in fase di creazione della reportistica.
Creiamo il nostro primo report
Siamo pronti a vedere il risultato di quanto abbiamo creato.
- Chiamiamo questa tab “
Overview
“. - “
Report View
“, “Insert
“, “Image
“, e carichiamo un logo a piacere. Posizioniamolo adeguatamente in pagina. - Nel pannello “
Visualizations
“, selezioniamo il grafico a barre e posizioniamolo adeguatamente; con il grafico (vuoto) selezionato, clicchiamo nei campi “Unit Price
” e “Category
“. - Selezioniamo il grafico a linee, posizioniamolo, e selezioniamo poi i campi “
Category
” e “Qty
“. - Selezioniamo il campo “
Slicers
” (icona con piccolo imbuto con pulsanti), e clicchiamo poi il campo “Order_Date
“). - Selezioniamo il grafico “
Treemap
” (icona con quadrati colorati) e clicchiamo su “Category
” e “Qty
“. - Notiamo che muovendo i filtri o cliccando sui singoli elementi, tutti i visual si adeguano dinamicamente.
- Andiamo su “
File
“, “Options and Settings
“, “Options
“, “Security
” e abilitiamo “Map and filled Map
“. Poi torniamo su “Report View
“, selezioniamo la mappa (icona mappamondo), inseriamo “City
” eCustomer_id
“. Nel campo “Bubble size
” del report, selezioniamo la freccia in basso e modifichiamo in “Count distinct
“. Posizioniamo la cartina sugli Stati Uniti.
Ora creiamo una seconda pagina e chiamiamola “Data explore
“.
- Inseriamo la visual “
Decomposition tree
” (icona diagramma ad albero). Inseriamo, sempre cliccando i singoli campi, “Payment Method
“, “Region
“, “Discount percent
“. Per quest’ultimo campo, nel campo “Analyze
“, modifichiamo da “Sum
” a “Average
“. - Selezioniamo la visual “
Ribbon chart
” (icona con nastri colorati), poi scegliamo i campi “Region
“, “Category
“, “Unit price
“, selezionando come aggregazione “Average
“. - Selezioniamo la visual “
Matrix
” e inseriamo i campi “Region
” e “Discount Percent
“, modificando in “Average
“. - Selezioniamo “
Donut
” e inseriamo i campi “Region
” e “Order Id
“, con aggregazione “Count
“.
Sistemiamo il layout di entrambe le pagine, rendendolo graficamente gradevole.
Dovremmo aver ottenuto qualcosa di simile a questo:
E adesso?
Power BI è uno strumento sconfinato e servono anni per padroneggiarlo con maestria.
- Potresti provare a creare campi calcolati o colonne custom con DAX o con le Quick Measure.
- Potresti rinominare i campi della sorgente dati e renderli tra loro coerenti.
- Potresti aggiungere colonne al dataset e provare a inserire una nuova fonte dati.
- Potresti connetterti con il tuo account Microsoft e pubblicare una Dashboard o creare una versione Mobile.
- Potresti connettere Copilot e provare a interrogare i dati con AI.
- Potresti costruire un report casalingo per tracciare le tue spese o i tuoi allenamenti.
- …e molto altro ancora.
Ma per il momento ci fermiamo qui, sperando di aver accesso la tua curiosità e la voglia di sperimentare con questo strumento.
Possiamo aiutarti?
In Aziona conosciamo bene Power BI, è alla base del nostro prodotto Reportino – la business intelligence per l’energia.
Se vuoi saperne di più, o avere supporto per la business intelligence, analisi o visualizzazione dei tuoi dati, contattaci!
Note
- Per Power BI, si intende riferire al prodotto software proprietario di Microsoft, Microsoft Power BI [9].
- La documentazione ufficiale è reperibile sul sito Microsoft: Documentazione di Power BI nel 2025.
- L’autore di quest’articolo ha conseguito la certificazione Microsoft Data Analyst Associate (PL300).
- Il file Excel usato per l’elaborazione dello Star Schema è stato attinto dal repository GitHub di Amit Chandak. Per chi volesse seguire le sue istruzioni passo passo, si rimanda al suo video tutorial [9].
- L’articolo intende fornire una guida tecnico-operativo all’uso del prodotto con finalità educativa. Non vi sono connessioni, endorsement, rapporti commerciali verso alcun prodotto o servizio di terze parti.