Ogni report analitico parte da una domanda semplice ma cruciale: i dati sono pronti per essere analizzati? Raramente lo sono. Arrivano da fonti diverse, con colonne inutili, formati incoerenti, valori mancanti. In Power BI (e più in generale nel mondo dati Microsoft) due strumenti rispondono a questa esigenza in momenti diversi del flusso: Power Query prepara e trasforma i dati prima dell’analisi, mentre DAX calcola valori e metriche dopo che i dati sono stati caricati nel modello.

Power Query: connettere, pulire, trasformare (ETL low-code)

Power Query è lo strumento di preparazione dei dati integrato in Power BI Desktop, in Excel e in altri prodotti della piattaforma. Rappresenta la fase ETL (Extract, Transform, Load) in modalità low-code: si opera principalmente attraverso un’interfaccia grafica, senza scrivere codice complesso.

Le sue funzioni tipiche:

  • Connettersi alle sorgenti: database SQL, file Excel/CSV, servizi cloud, cartelle SharePoint, Dataverse e centinaia di connettori pronti all’uso.
  • Pulire i dati: rimuovere righe o colonne, eliminare duplicati, gestire valori nulli, correggere tipi di dato (testo, numero, data).
  • Trasformare la struttura: rinominare colonne, dividere o unire campi, “pivotare” o “spivotare” tabelle, aggregare, unire (merge) e accodare (append) più tabelle.

Il concetto chiave: passaggi applicati

Ogni operazione in Power Query viene registrata come un passaggio applicato (applied step) in una sequenza ordinata. Questo rende il processo ripetibile e automatico: quando i dati sorgente si aggiornano, basta un refresh perché tutte le trasformazioni vengano riapplicate nello stesso ordine. Non si modificano mai i dati originali: Power Query lavora su una copia trasformata. Il linguaggio sottostante si chiama M, ma a livello fundamentals è sufficiente sapere che l’interfaccia grafica lo genera per noi.

DAX: calcolare valori e metriche

Una volta che i dati sono puliti e caricati nel modello, entra in gioco DAX (Data Analysis Expressions). È il linguaggio di formule e query usato in Power BI, Analysis Services e nelle tabelle di Power Pivot per creare calcoli che non esistono già nei dati grezzi.

Con DAX si definiscono principalmente due tipi di oggetti:

  • Colonne calcolate: aggiungono una nuova colonna a una tabella, calcolata riga per riga (es. un ricavo = quantità × prezzo). Il risultato è memorizzato nel modello e occupa spazio.
  • Misure (measures): calcoli aggregati che si valutano dinamicamente in base al contesto del report, ovvero ai filtri e alle selezioni dell’utente (es. Totale Vendite = SUM(Vendite[Importo])). Le misure non memorizzano un valore fisso: si ricalcolano ogni volta che si interagisce con il report.

Quando colonna, quando misura

A livello fundamentals la distinzione da ricordare è semplice: usa una colonna calcolata quando ti serve un valore per ogni singola riga o come categoria per filtrare/raggruppare; usa una misura per aggregazioni (somme, medie, conteggi, percentuali) che devono reagire ai filtri del report. Le misure sono generalmente la scelta più efficiente.

Come lavorano insieme

Il flusso è sequenziale e complementare:

  1. Power Query estrae, pulisce e struttura i dati → li carica nel modello.
  2. DAX crea sopra quel modello le metriche e i calcoli che alimentano i visual.

In sintesi: Power Query prepara i dati, DAX li calcola. Confonderne il ruolo è l’errore più comune all’esame.

Trappole tipiche d’esame

  • Scenario: devi rimuovere colonne inutili, correggere i tipi di dato e unire due tabelle prima di analizzarle → la risposta giusta è Power Query (preparazione/trasformazione ETL), non DAX.
  • Scenario: devi creare una metrica come “Totale vendite” che cambia in base ai filtri applicati nel report → serve una misura DAX, non una trasformazione in Power Query.
  • Scenario: i dati sorgente cambiano ogni giorno e vuoi che le pulizie si riapplichino automaticamente → i passaggi applicati di Power Query si rieseguono con un refresh; non devi rifare il lavoro a mano.
  • Scenario: ti chiedono “quale linguaggio si usa per scrivere formule e misure in Power BI?” → la risposta è DAX (Power Query usa il linguaggio M, ma il calcolo delle misure è DAX).
  • Scenario: serve un valore calcolato riga-per-riga da usare come categoria per raggruppare i dati → una colonna calcolata (DAX), non una misura.