DAX Power BI: cos’è, caratteristiche e funzioni

DAX è il linguaggio di formula che sta al cuore di Power BI, la terza testa della suite Power Platform di Microsoft e che consente ai suoi utenti di creare report interattivi e dashboard per il monitoraggio delle informazioni aziendali. DAX permette di trasformare i dati grezzi in informazioni utili e semplificare enormemente il lavoro di dipartimenti finanziari, data analyst e marketing manager. Comprendere e utilizzare efficacemente DAX è fondamentale per sfruttare appieno le capacità di Power BI e in questo articolo andremo a dare una panoramica generale di cos’è, come funziona e di quali sono le sue applicazioni pratiche.

Cosa troverai in questo articolo

  • DAX Power BI: che cos’è?
  • DAX Power BI: come funziona?
  • Power BI DAX: contesto di calcolo, funzioni predefinite e operatori
  • Power BI DAX: casi d’utilizzo pratici
DAX Power BI: cos’è, caratteristiche e funzioni

DAX Power BI: che cos’è?

DAX, o Data Analysis Expressions, è il linguaggio di formula che costituisce il nucleo della capacità di calcolo e analisi di Power BI, Power Pivot e SQL Server Analysis Services (SSAS). DAX offre agli utenti che decidono di impiegarlo una potente e intuitiva sintassi di espressione che permette di eseguire trasformazioni e analisi complesse delle informazioni all'interno dei modelli di dati.

Simile al linguaggio di formula comunemente utilizzato in Excel, DAX consente di fare calcoli, sommare numeri, contare oggetti e persino fare confronti tra diversi periodi di tempo e trasformare i dati grezzi raccolti in informazioni utili per il monitoraggio delle prestazioni aziendali e la valutazione degli scenari di sviluppo per il proprio business.

Con Power BI e DAX, si possono creare grafici e report che non solo mostrano i dati che ci interessano in maniera pulita e ordinata, ma anche aiutare gli analisti della propria compagnia a capire le tendenze e a prendere decisioni informate facilitandone la visualizzazione, lo studio e la comparazione sulla base di ogni possibile parametro utile. Vediamo insieme come.

DAX Power BI: come funziona?

Per prima cosa, se non si è familiari con l’argomento, prendiamoci un attimo per vedere che cos’è un linguaggio di formula. Altro non è che un linguaggio di programmazione specializzato progettato per la creazione e la manipolazione di formule matematiche, logiche o analitiche all'interno di software applicativi.

Questi linguaggi sono comunemente utilizzati nei fogli di calcolo, nei sistemi di gestione di database, nelle applicazioni di data analysis e in altri contesti in cui è necessario eseguire calcoli complessi o analisi su set di informazioni.

In Power BI, DAX è utilizzato esattamente per questo: definire e gestire i calcoli all'interno dei modelli di dati. Questi calcoli possono essere utilizzati per creare misure e colonne calcolate, che a loro volta possono essere utilizzate per costruire visualizzazioni dettagliate e interattive. Il linguaggio funziona direttamente con i modelli tabellari di Power BI e questa architettura tabellare è simile a quella di un database relazionale, ma ottimizzata per l'analisi e la visualizzazione dei dati.

In DAX, le misure e le colonne calcolate sono strumenti fondamentali per l'analisi dei dati. Prendiamoci quindi un momento per vedere più da vicino cosa sono:

  • Misure: Sono calcoli che vengono valutati dinamicamente in base al contesto del report. Le misure sono progettate per essere utilizzate nelle visualizzazioni, adattandosi ai filtri e alle selezioni applicate. Ad esempio, una misura potrebbe calcolare il totale delle vendite mensili in base ai filtri di data e prodotto attivi nel report.
  • Colonne Calcolate: A differenza delle misure, le colonne calcolate vengono calcolate per ogni riga di una tabella e vengono memorizzate come parte del modello di dati. Queste colonne possono essere utilizzate per aggiungere nuove informazioni ai dati esistenti, come categorizzazioni o segmentazioni. Ad esempio, una colonna calcolata può classificare i prodotti in base alla fascia di prezzo.

Alla base di DAX c'è un motore di query ottimizzato per eseguire calcoli complessi in modo efficiente. Il motore di DAX si avvale di tecniche avanzate di compressione dei dati e algoritmi di scansione in memoria, che permettono di eseguire calcoli su milioni di righe in tempi molto rapidi. Questo è reso possibile dal VertiPaq, un motore di compressione in-memory, che è una parte centrale dell'architettura di Power BI.

Questo approccio permette di comprimere i dati in modo molto più efficace rispetto ai formati tradizionali di storage a righe, migliorando l'efficienza sia in termini di memoria che di velocità di calcolo. Quando si esegue una formula DAX, il motore di valutazione delle query analizza e ottimizza l'espressione. La query viene trasformata in un piano di esecuzione efficiente che minimizza l'uso di risorse computazionali e il motore utilizza tecniche come la generazione di query SQL ottimizzate e la gestione intelligente della cache per migliorare le prestazioni.

DAX è compatibile con i modelli di dati esistenti e supporta la migrazione da altre piattaforme di analisi dati. Questo significa che le organizzazioni possono trasferire facilmente i loro modelli di dati e le loro analisi in Power BI senza perdere la funzionalità o dover ricostruire tutto da zero.

Hai bisogno di una mano con i report di Power BI?

Dev4Side Software è specializzata nell'elaborazione di report personalizzati tramite Microsoft Power BI, trasformando dati complessi in dashboard e report intuitivi per supportare decisioni aziendali informate.

Operando in maniera verticale sull'intero ecosistema Power Platform di Microsoft, abbiamo sviluppato una ottima competenza su Power BI che ci permette di offrire soluzioni di business intelligence per evidenziare insight critici e promuovere l'efficienza operativa.

Contattaci per trasformare i dati della tua azienda in azioni concrete.

Power BI DAX: contesto di calcolo, funzioni predefinite e operatori

Ora che abbiamo un’idea generale del funzionamento di DAX all’interno di Power BI, è arrivato il momento di dare un’occhiata più da vicino agli elementi che compongono e contraddistinguono DAX per meglio comprendere come opera e come può aiutarci nell’esercizio delle nostre pratiche aziendali.

Per farlo andremo a parlare più nel dettaglio del contesto di calcolo, delle diverse categorie di funzioni predefinite messe a disposizione dal linguaggio e degli operatori utilizzabili per le formule. Vediamoli assieme.

Contesto di calcolo

Il contesto di calcolo è una caratteristica centrale di DAX e determina quali dati vengono considerati durante il calcolo di una formula. In buona sostanza, è l'insieme di condizioni che definiscono il sottoinsieme di dati sui quali una formula DAX opera.

Esistono due tipi principali di contesto di calcolo applicabili e sono rispettivamente il contesto di riga e il contesto di filtro.

Il contesto di riga si riferisce alla riga corrente durante l'esecuzione di un calcolo. È particolarmente rilevante quando si utilizza la funzione RELATED o RELATEDTABLE, che consente di accedere ai valori nelle tabelle correlate basandosi sulle relazioni definite nel modello di dati. Ad esempio, quando si calcola una colonna calcolata in una tabella di transazioni, il contesto di riga assicura che la formula consideri i valori specifici di quella riga.

Il contesto di filtro si applica invece a un sottoinsieme di dati filtrato in base a uno o più criteri. Questo contesto può essere esplicitamente definito all'interno di una formula utilizzando funzioni come CALCULATE o FILTER, oppure può essere implicito, derivante dalle interazioni dell'utente con i report di Power BI, come la selezione di un filtro a livello di report o la selezione di una fetta di un grafico a torta. Prendiamo a esempio l’applicazione di un filtro per visualizzare solo le vendite di un determinato anno, il contesto di filtro modifica tutte le misure calcolate nel report per riflettere solo i dati di quell'anno.

Funzioni predefinite

DAX offre una vasta gamma di funzioni predefinite che facilitano la creazione di calcoli complessi e analisi dettagliate. Queste funzioni possono essere classificate in diverse categorie, ciascuna con un suo focus specifico.

La prima categoria che andremo a vedere è quella delle funzioni di aggregazione come SUM, AVERAGE, MIN e MAX permettono di eseguire calcoli aggregati su colonne di dati. Queste funzioni sono fondamentali per riassumere grandi insiemi di dati e sono spesso utilizzate per creare misure chiave come il totale delle vendite o la media dei costi.

Abbiamo poi le funzioni di gestione del tempo, uno dei punti forti di DAX, che consentono di analizzare i dati nel contesto temporale. Funzioni come DATEADD, DATESYTD, e SAMEPERIODLASTYEAR permettono di effettuare analisi comparative su periodi di tempo, come confrontare le vendite di questo mese con quelle dello stesso mese dell'anno scorso.

Le funzioni logiche come IF, AND, e OR consentono di creare calcoli condizionali che possono restituire valori diversi in base a condizioni specifiche. La funzione IF può essere utilizzata, ad esempio, per assegnare automaticamente un punteggio di rischio a un cliente basato su elementi come la sua cronologia di acquisti.

Le funzioni di manipolazione delle stringhe come CONCATENATE, LEFT, RIGHT e LEN sono invece essenziali per gestire e analizzare dati testuali. Queste permettono di concatenare stringhe, estrarre sottostringhe e calcolare la lunghezza delle stringhe, utilissimo in scenari come la creazione di identificatori univoci o la pulizia dei dati di input.

Infine abbiamo le funzioni di relazione come RELATED e RELATEDTABLE che permettono di accedere ai valori da tabelle correlate sfruttando le relazioni definite nel modello di dati. Queste funzioni sono cruciali quando si lavorano con modelli di dati complessi che includono più tabelle correlate.

Operatori

Gli operatori in DAX sono utilizzati per eseguire operazioni matematiche, logiche e di confronto nelle formule e si dividono in tre tipologie principali che sono rispettivamente quelle degli operatori aritmetici, di confronto e logici.

Gli operatori aritmetici come +, -, * e / permettono di eseguire operazioni matematiche di base sui valori numerici. Sono sostanzialmente i classici simboli della matematica con cui siamo tutti in qualche modo familiari.

Volendo fare un esempio del loro utilizzo prendiamo una formula come

Sales[Quantity] * Sales[UnitPrice]

La formula così impostata calcola semplicemente il totale delle vendite moltiplicando la quantità venduta per il prezzo unitario.

Gli operatori di confronto come =, >, <, >=, <=, e <> sono invece utilizzati per confrontare valori e determinare se una data condizione è vera o falsa. Anche questi operatori dovrebbero essere familiari a chiunque abbia una conoscenza scolastica della matematica e sono fondamentali per la creazione di calcoli condizionali.

Per dare un’idea di come operano, prendiamo a titolo di esempio la formula

IF(Sales[Amount] > 1000, "High", "Low")

Con questa sintassi, la formula assegnerà un'etichetta di "High" o "Low" in base all'importo delle vendite calcolato.

Infine, come ultima tipologia abbiamo quella degli operatori logici come AND, OR, e NOT che combinano o negano condizioni, consentendo di creare logiche complesse nelle formule. Questi operatori sono spesso utilizzati nelle funzioni IF per valutare condizioni multiple.

Ad esempio, la formula

IF(AND(Sales[Region] = "North", Sales[Amount] > 1000), "High", "Low")

restituisce il valore "High" solo se la regione è "North" e l'importo delle vendite calcolato supera la cifra di 1000.

È possibile anche utilizzare operatori più avanzati come && e || per combinare condizioni multiple in un'unica espressione logica.

Per capire meglio come funzionano, consideriamo la formula

IF(Sales[Amount] > 1000 && Sales[Category] = "Electronics", "Premium", "Standard")

Così impostata, la formula classifica una vendita come "Premium" se l'importo supera i 1000 e la categoria è "Electronics".

Power BI DAX: casi d’utilizzo pratici

Adesso che abbiamo maggiore cognizione di come funziona DAX, delle sue caratteristiche e degli elementi che lo compongono, è giunto il momento di vedere quali sono le sue possibili applicazioni all’interno di scenari reali.

Analisi delle performance del team vendite

Non è mai inutile sottolineare quanto sia di importanza vitale monitorare le performance del proprio team per identificare le aree di miglioramento, premiare i migliori risultati e in generale avere la panoramica più chiara e completa possibile dello stato delle proprie vendite. Utilizzando DAX in Power BI è possibile creare una dashboard che traccia tutte le metriche chiave che ci occorrono come il numero di vendite concluse, il loro valore medio e il tempo medio per la loro conclusione.

Per calcolare il numero di vendite concluse, DAX consente di sommare il numero di transazioni completate per ogni membro del team, fornendo una panoramica chiara delle performance individuali.

Sales Completed = COUNTROWS(FILTER(Sales, Sales[Status] = "Completed"))

Il valore medio delle vendite può essere calcolato utilizzando la funzione AVERAGE, che divide il totale delle vendite per il numero di transazioni, offrendo un'indicazione della qualità delle vendite effettuate.

Average Sale Value = AVERAGE(Sales[Sale Amount])

Per il tempo medio necessario a concludere una vendita, DAX può sommare i tempi impiegati per ogni transazione e dividerli per il numero totale di vendite, evidenziando l'efficienza del team.

Average Time to Close = AVERAGE(DATEDIFF(Sales[Start Date], Sales[Close Date], DAY))

Con DAX, è possibile applicare filtri dinamici per esaminare le performance in diversi periodi, come mensili o trimestrali, o per confrontare le performance tra differenti regioni o categorie di prodotti. Questo livello di analisi dettagliata aiuta i manager a identificare rapidamente le tendenze e a intraprendere azioni correttive dove necessario.

Gestione delle Risorse Umane e analisi del Turnover

Nell'ambito delle risorse umane, DAX può essere utilizzato per analizzare il turnover del personale e comprendere meglio i motivi dietro le dimissioni dei dipendenti. Un'azienda può creare un report che traccia il tasso di turnover, calcolato dividendo il numero di dipendenti che hanno lasciato l'azienda per il numero totale di dipendenti in un dato periodo.

Turnover Rate = DIVIDE(COUNTROWS(FILTER(Employees, Employees[Status] = "Left")), COUNTROWS(Employees))

Utilizzando DAX, è possibile segmentare ulteriormente questi dati per dipartimento, posizione geografica o livello di esperienza, fornendo una visione dettagliata delle dinamiche di turnover.

Per identificare i fattori che influenzano il turnover, DAX può aiutare a correlare le dimissioni con variabili come la soddisfazione lavorativa, le valutazioni delle performance e la compensazione. Funzioni come RELATED e SUMMARIZE possono essere utilizzate per aggregare e correlare i dati da diverse tabelle, offrendo una visione olistica dei motivi che potrebbero portare i dipendenti a lasciare l'azienda.

Questa formula ad esempio aggrega i punteggi di soddisfazione dei dipendenti che hanno lasciato l'azienda, permettendo ai responsabili delle risorse umane di comprendere meglio le cause del turnover e di implementare strategie per migliorare la retention.

Avg Satisfaction of Left Employees = AVERAGEX(FILTER(Employees, Employees[Status] = "Left"), RELATED(Feedback[Satisfaction Score]))

Ottimizzazione del budget e delle spese aziendali

Per gli uffici finanziari, DAX in Power BI è uno strumento essenziale per tutte le attività legate alla gestione e alla ottimizzazione del budget aziendale. I responsabili finanziari possono utilizzare DAX per creare misure che monitorino le spese rispetto al budget allocato, permettendo un controllo rigoroso delle finanze della compagnia.

Volendo fare un esempio, è possibile calcolare la variazione del budget sottraendo le spese effettive dal budget previsto e poi, dividendo per il budget previsto, ottenere la variazione percentuale, dando modo di identificare rapidamente le aree dove le spese superano il budget.

Budget Variance = SUM(Budget[Planned Amount]) - SUM(Expenses[Actual Amount])

Per ottenere la variazione percentuale rispetto al budget, si può utilizzare la funzione DIVIDE per evitare errori di divisione per zero:

Budget Variance % = DIVIDE([Budget Variance], SUM(Budget[Planned Amount]))

DAX può anche essere utilizzato per proiettare le spese future basandosi su tendenze storiche. Utilizzando funzioni di time intelligence come TOTALYTD o DATESINPERIOD, i responsabili finanziari possono creare previsioni che aiutino a pianificare le future allocazioni di budget. Qui sotto forniamo un esempio di una formula che somma tutte le spese fino alla data corrente considerando l'anno fiscale:

Total Expenses YTD = TOTALYTD( SUM(Expenses[Amount]), Expenses[Date], "31/12")

Inoltre, con DAX, è possibile segmentare le spese per categoria, dipartimento o progetto, permettendo una comprensione dettagliata di come vengono utilizzate le risorse finanziarie e dove potrebbero essere apportati miglioramenti. Un esempio di possibile sintassi per la formula potrebbe essere il seguente:

Total Expenses by Category = CALCULATE( SUM(Expenses[Amount]), ALLEXCEPT(Expenses, Expenses[Category])

Analisi del feedback dei clienti e miglioramento dei servizi

In un ufficio dedicato al servizio clienti, l'analisi del feedback dei clienti è fondamentale per migliorare la qualità dei servizi offerti dal proprio business. Utilizzando DAX in Power BI, i responsabili del servizio clienti possono analizzare le valutazioni e i commenti dei clienti per identificare tendenze e aree di miglioramento.

DAX può essere utilizzato per calcolare la valutazione media del servizio, sommando tutte le valutazioni ricevute e dividendo per il numero totale di risposte. Questa misura fornisce un'indicazione chiara della soddisfazione complessiva dei clienti.

Average Customer Rating = AVERAGE(Feedback[Rating])

DAX permette anche di filtrare i feedback per diverse dimensioni, come il tipo di servizio richiesto, il tempo di risposta o l'agente che ha gestito la richiesta. Questo consente di identificare specifiche aree di forza e debolezza nel servizio clienti.

Inoltre, utilizzando funzioni come COUNTROWS in combinazione con filtri logici, è possibile analizzare la frequenza di commenti positivi e negativi e correlare questi dati con altre metriche operative, come il tempo di gestione delle chiamate o la risoluzione alla prima interazione.

Supponiamo, ad esempio, di voler contare il numero di commenti positivi. Per farlo potremo utilizzare una formula con questa sintassi:

Positive Feedback Count = COUNTROWS(FILTER(Feedback, Feedback[Rating] >= 4))

Monitoraggio delle prestazioni dei progetti

Nella gestione dei progetti, DAX in Power BI può essere impiegato per monitorare le prestazioni e gestire i rischi associati. I project manager possono utilizzare DAX per creare misure che tracciano il progresso del progetto", calcolato come la percentuale delle attività completate rispetto al totale delle attività pianificate.

Project Completion % = DIVIDE(COUNTROWS(FILTER(Tasks, Tasks[Status] = "Completed")), COUNTROWS(Tasks))

DAX consente anche di analizzare i costi e i tempi dei progetti in modo dettagliato. Utilizzando funzioni come SUM e DIVIDE, è possibile calcolare il costo per attività e il tempo per attività, identificando le aree dove i progetti stanno andando oltre il budget o i tempi previsti. Un esempio potrebbe essere:

Cost per Task = SUM(Tasks[Cost])

Gestione dei rischi

Per valutare eventuali rischi associati ai propri progetti utilizzando DAX in Power BI, si può creare rapidamente una formula che identifichi le attività critiche che potrebbero causare ritardi o problemi futuri al nostro business.

Per questo esempio, ipotizziamo di avere una tabella denominata Projects che contiene colonne come ProjectName, Activity, RiskLevel, PlannedEndDate, ActualEndDate, e Delay.

Per aiutarci nell’identificazione delle criticità possiamo creare una misura DAX che filtra le attività con alto rischio (RiskLevel = "High"), che non sono ancora completate entro la data prevista (ActualEndDate > PlannedEndDate), o che hanno un ritardo significativo (ad esempio, più di 7 giorni).

Critical Activities = CALCULATE( COUNTROWS(Projects), FILTER( Projects, Projects[RiskLevel] = "High" || Projects[ActualEndDate] > Projects[PlannedEndDate] || Projects[Delay] > 7)

Conclusioni

Per chiudere la nostra panoramica non si può non ribadire quanto DAX e Power BI siano risorse di immenso valore per le aziende che desiderano trasformare i loro dati in conoscenza strategica, in un'era in cui i dati sono al centro di ogni progetto di successo.

Grazie alla capacità di eseguire calcoli complessi e di estrarre insight dettagliati, DAX amplifica enormemente le potenzialità di Power BI, rendendolo uno dei migliori strumenti per l’analisi e la visualizzazione dei dati attualmente sul mercato e comprenderlo e padroneggiarlo non è più solo un vantaggio competitivo, ma ormai una vera e propria necessità per navigare il complesso panorama aziendale contemporaneo.

Le formule DAX sono la chiave che permette di creare i report dinamici e personalizzati che hanno reso Power BI così apprezzato e utilizzato all’interno di centinaia di migliaia di aziende. Dal monitoraggio delle performance aziendali alla previsione delle tendenze future, DAX offre una versatilità unica che va a supporto di tutte le esigenze analitiche per ogni tipologia di organizzazione e dipartimento. Provare per credere, dunque.

Entra in contatto con il team

Modern Work

Il team Modern Work risponde in maniera efficace e veloce alle necessità IT, in cui lo sviluppo software rappresenta la componente principale. Le figure tecniche hanno tutte una formazione incentrata sulla realizzazione di progetti software su stack tecnologici Microsoft e possiedono competenze nella gestione di progetti agili o di lunga durata.