Questo articolo è pensato per coloro che sono nuovi a Power BI Desktop. Esplorerà i concetti di base di DAX in Power BI, mostrando come applicarli a comuni compiti di analisi matematica e dati. Approfondiremo alcuni concetti teorici lungo il percorso: scopriremo cos’è la formula DAX in Power BI e come scriverla, cos’è una funzione DAX e cos’è il contesto nelle formule DAX.
I Data Analysis Expressions (DAX) sono formule specializzate utilizzate per analizzare e calcolare i dati. DAX alimenta tutti i calcoli in Power BI, fornendo un set di strumenti dinamico e versatile per creare nuovi campi e tabelle all'interno del modello dati. Sebbene DAX sia principalmente associato a Power BI, è utilizzato anche in Power Pivot per Excel e nei servizi di Analisi di SQL Server (SSAS).
Queste espressioni sono composte da vari componenti, tra cui funzioni, operatori e costanti, che vengono combinati in una singola formula per produrre un risultato (valore o valori). Power BI, e altri strumenti di business intelligence, sfruttano efficacemente i dati a loro disposizione, grazie principalmente alla potenza delle formule DAX in Power BI.
DAX è considerato un "linguaggio funzionale", il che significa che ogni segmento di codice al suo interno funziona come una funzione. Questo comprende dichiarazioni condizionali, funzioni nidificate, riferimenti a valori e altri elementi, tutti i quali possono essere incorporati in un'espressione DAX per l'esecuzione.
Le formule DAX possono operare con due principali tipi di dati: numerici e non numerici. I tipi di dati numerici includono interi, decimali e valute, mentre i tipi di dati non numerici consistono in stringhe e oggetti binari. L'evaluazione delle espressioni DAX inizia con la funzione più interna e procede verso l'esterno. Pertanto, la creazione di una formula DAX ben organizzata è cruciale.
Quando una formula DAX viene eseguita, converte automaticamente i valori di tipi di dati diversi per farli corrispondere al tipo per cui è stata progettata. La formula DAX casta automaticamente i valori risultanti al tipo di dato desiderato.
Le formule DAX sono composte da tre componenti fondamentali, e ne copriremo ciascuno nel dettaglio:
Le formule DAX in Power BI consentono agli utenti di sfruttare efficacemente i propri dati all'interno di Power BI, risolvendo sfide aziendali con precisione. Facilitano calcoli semplici come somme o medie e consentono la creazione di visualizzazioni senza richiedere una profonda conoscenza di DAX. Ad esempio, per generare un grafico di profitto di base, è sufficiente trascinare il campo profitto nella sezione Valori del grafico, dove calcola automaticamente la somma delle righe pertinenti.
Utilizzare una formula DAX diventa vantaggioso quando si desidera applicare lo stesso calcolo in vari contesti, come su diversi grafici o come parte di altre espressioni DAX. Questo approccio migliora l'efficienza del report e semplifica le modifiche future, in quanto è possibile apportare aggiustamenti a una sola formula anziché dover aggiornare formule multiple distribuite in diverse sezioni del report.
Se il problema aziendale richiede calcoli complessi o personalizzati oltre le semplici funzioni di SOMMA o MEDIA, la creazione di formule DAX diventa essenziale.
Sebbene una conoscenza di base dell'interfaccia di Power BI consenta di creare e condividere report online in modo efficace, comprendere come utilizzare le funzioni DAX in Power BI è cruciale per calcoli più complessi e per l'analisi dimensionale.
Ad esempio, è possibile calcolare percentuali di crescita e rappresentarle visivamente in diverse regioni di un paese per analizzare le tendenze dei dati nel tempo. DAX in Power BI consente ai progettisti di definire nuove misure, aiutando le aziende a individuare problemi e ideare soluzioni adeguate.
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.
Le formule DAX svolgono un ruolo fondamentale in Power BI per creare calcoli sia nelle colonne calcolate che nelle misure. Inoltre, DAX è fondamentale per implementare misure di sicurezza a livello di riga per proteggere i dati nei report e nelle dashboard.
Decomporre una formula nei suoi elementi costitutivi facilita una comprensione più approfondita di qualsiasi linguaggio. È cruciale studiare attentamente la sintassi di queste espressioni per creare efficacemente nuove formule basate su requisiti specifici.
Per formulare colonne calcolate e misure, utilizza la barra delle formule situata nella parte superiore della finestra del modello di progettazione o sfrutta lo strumento DAX Editor. Per stabilire formule relative alla sicurezza a livello di riga, accedi al Role Manager o alla finestra di dialogo Gestione ruoli. Le informazioni presentate in questa sezione mirano a fornirti una comprensione di base delle formule DAX in Power BI.
Comprendere le formule DAX in Power BI è semplice grazie alla loro natura intuitiva e leggibile. Questo rende rapido apprendere i concetti di base di DAX e iniziare a creare le proprie formule. Esploriamo gli elementi fondamentali che costituiscono una corretta sintassi DAX:
Si noti che ciascun parametro successivo in una funzione è separato da una virgola (",").
Quando si inserisce una formula in una colonna calcolata e questa viene convalidata con successo, la colonna viene istantaneamente popolata con i valori calcolati. Nel caso delle misure, premendo INVIO si salva la definizione della misura insieme alla tabella. Se c'è un errore nella formula, viene visualizzata una notifica di errore.
Le funzioni DAX in Power BI possono essere nidificate l'una dentro l'altra per eseguire più operazioni in modo efficiente, il che può notevolmente semplificare il processo di scrittura delle formule DAX. Ad esempio, nidificare più istruzioni IF o utilizzare funzioni come IFERROR per incapsulare un'altra funzione consente di gestire gli errori in modo elegante e personalizzare gli output degli errori secondo necessità. Questo approccio migliora la chiarezza delle formule e l'efficienza operativa in Power BI e ambienti simili.
Alcune delle funzioni DAX comunemente utilizzate nei report includono:
Facciamo ora un esempio pratico di una formula e scomponiamola passo per passo. La formula in questione è chiamata "Giorni nel trimestre corrente”:
Days in Current Quarter = COUNTROWS( DATESBETWEEN( 'Date'[Date], STARTOFQUARTER( LASTDATE('Date'[Date])), ENDOFQUARTER('Date'[Date])))
Questa misura calcola un rapporto di confronto tra un periodo parziale e il periodo precedente. La formula si adatta alla porzione del periodo che è trascorsa e la confronta con la corrispondente porzione nel periodo precedente. Nello specifico, divide [Days Current Quarter to Date] per [Days in Current Quarter] per determinare la proporzione trascorsa del periodo corrente.
Una funzione in un'espressione è una formula definita con un nome specifico. Le funzioni includono tipicamente argomenti obbligatori e opzionali, detti anche parametri, che servono come input. Questi parametri possono essere valori numerici, costanti, stringhe di testo, altre funzioni o formule, e valori logici come Vero o Falso. Quando una funzione viene eseguita, produce un valore come risultato. DAX comprende una varietà di funzioni progettate per eseguire calcoli che coinvolgono date e orari, generare valori condizionali, manipolare stringhe, eseguire ricerche basate su relazioni e iterare su tabelle per eseguire calcoli ricorsivi.
Sebbene le formule di Excel possano sembrare familiari, le funzioni DAX differiscono significativamente in due aspetti chiave:
DAX comprende numerose funzioni che restituiscono una tabella anziché un singolo valore. Queste tabelle non vengono generalmente visualizzate direttamente in un client di reportistica, ma servono come input per funzioni successive. Ad esempio, è possibile recuperare una tabella e poi calcolare il conteggio dei valori distinti al suo interno, oppure sommare dinamicamente i valori attraverso tabelle o colonne filtrate.
Le funzioni DAX includono una gamma di capacità di intelligenza temporale. Queste funzioni consentono di definire o selezionare intervalli di date e facilitano i calcoli dinamici basati su queste date o intervalli. Ad esempio, è possibile confrontare somme tra periodi corrispondenti.
Guardiamo insieme alcuni tipi di funzioni DAX in Power BI e alcuni esempi con relativa sintassi.
Sebbene le funzioni di data e ora in DAX somiglino a quelle presenti in Microsoft Excel, esse operano utilizzando un tipo di dato datetime che inizia dal 1° marzo 1900. Questa distinzione differenzia le funzioni DAX in termini di gestione dei dati e calcoli che coinvolgono date e orari. Ecco alcuni esempi di funzione data e ora.
Gli argomenti start-date e end-date possono accettare qualsiasi valore DateTime. La funzione restituisce una tabella composta da una singola colonna contenente una sequenza di date all'interno dell'intervallo specificato.
Sintassi:
CALENDAR(<StartDate>,<EndDate>)
Esempio:
COUTDAYS(CALENDAR(DATE(2020,4,1), DATE(2020,6,5))) //returns 65
La funzione DATEDIFF calcola la differenza tra due date basata sulle unità di intervallo specificate dall'utente.
Sintassi:
DATEDIFF(<StartDate>,<EndDate>,<Interval>)
Esempi:
DATEDIFF(DATE(2020,1,1), DATE(2020,1,31), HOUR) //returns 720
DATEDIFF(DATE(2020,1,1), DATE(2020,3,31), DAYS) //returns 90
DATEDIFF(DATE(2020,1,1), DATE(2020,4,31), MONTH) //returns 3
La funzione restituisce il valore corrente della data e dell'ora nel formato standard.
Sintassi:
NOW()
Esempio:
HOUR(NOW()) //returns 12:00:00AM
Converte la data fornita in un formato testuale data-ora.
Sintassi:
DATEVALUE(<DateText>)
Esempi:
DATEVALUE(“1/7/2020”) //returns
DATEVALUE(“20-3-2020”) //returns 1/20/3/2020 12:00:00AM
DATEVALUE(“1-Jul-2020”) //returns 1/07/2020 12:00:00 AM
Le funzioni DAX di aggregazione calcolano un valore scalare, come conteggio, somma, media, minimo o massimo, su tutte le righe in una colonna o tabella come determinato dall'espressione specificata.
Le funzionalità di intelligenza temporale disponibili in DAX consentono la creazione di calcoli che sfruttano le capacità integrate relative a calendari e date. Utilizzando intervalli temporali e date insieme a aggregazioni o calcoli, è possibile costruire confronti significativi tra periodi temporali equivalenti, come tendenze delle vendite e analisi dell'inventario.
Queste funzioni sono principalmente utilizzate per calcolare aggregazioni, manipolare dati e sviluppare soluzioni di Business Intelligence utilizzando una tabella di date come input.
Le funzioni di filtro in DAX sono progettate per recuperare tipologie di dati specifiche, eseguire operazioni di ricerca tra tabelle correlate e filtrare i dati in base ai valori associati. Questi meccanismi di ricerca operano in modo simile alle query di database, sfruttando le strutture delle tabelle e le relazioni definite. Le funzioni di filtro sono cruciali per gli analisti di dati, poiché consentono loro di regolare dinamicamente il contesto dei dati e facilitare calcoli complessi secondo i requisiti dell'analisi.
DAX offre una serie di funzioni finanziarie progettate per eseguire calcoli come il valore attuale netto e il tasso di rendimento. Queste funzioni riflettono gli strumenti finanziari presenti in Microsoft Excel, fornendo capacità robuste per l'analisi finanziaria all'interno di Power BI e altri ambienti correlati.
In Power BI, le funzioni logiche valutano le espressioni per fornire informazioni sui valori all'interno dell'espressione. Ad esempio, la funzione TRUE determina se l'espressione valutata produce un valore TRUE. Alcune di queste funzioni includono: DAX AND, DAX OR, DAX IF, DAX SWITCH.
Una funzione di informazione esamina la cella o la riga specificata e indica se il valore corrisponde al tipo atteso. Ad esempio, la funzione ISERROR restituisce TRUE quando il valore di riferimento contiene un errore.
Le funzioni matematiche in DAX sono molto simili alle funzioni matematiche e trigonometriche di Excel, con leggere variazioni nei tipi di dati numerici. Queste funzioni sono essenziali per eseguire una varietà di calcoli all'interno di Power BI.
Le funzioni statistiche in DAX calcolano valori associati a distribuzioni statistiche e probabilità, come la deviazione standard e le permutazioni. Queste funzioni sono fondamentali per eseguire espressioni DAX all'interno di modelli statistici e aggregazioni.
Queste funzioni possono generare una nuova tabella o modificare tabelle esistenti. Ad esempio, la funzione ADDCOLUMNS consente di aggiungere colonne calcolate a una tabella designata, mentre la funzione SUMMARIZECOLUMNS produce una tabella di riepilogo attraverso gruppi specificati.
Le formule DAX in Power BI sono reattive e si adattano in base al contesto di origine. Comprendere come il contesto funziona in DAX è cruciale per risolvere errori nelle formule e garantire calcoli accurati.
DAX opera all'interno di due contesti principali: il contesto di riga (row context) e il contesto di filtro (filter context). La familiarità con questi contesti è essenziale per gestire efficacemente le relazioni tra i dati e ottimizzare i risultati delle formule.
Questo concetto si riferisce alla "riga corrente", che include tutte le colonne all'interno di una tabella e si estende anche alle tabelle correlate. Questo contesto informa la formula DAX riguardo alle righe specifiche da includere durante l'esecuzione di una formula.
Prendiamo come esempio la seguente formula:
Cost Price Per Unit = financials[COGS] / financials[Units Sold]
Nel calcolo del Cost Price Per Unit, DAX opera su base riga per riga. Ciò significa che DAX deve identificare la riga corrente mentre itera attraverso il dataset, eseguendo il calcolo e popolando la nuova colonna con i valori risultanti.
Il contesto di riga (row context) è intrinseco nelle colonne calcolate perché i calcoli vengono eseguiti individualmente per ogni riga, stabilendo automaticamente il contesto di riga. Tuttavia, ciò è diverso per le misure (measures) dove le aggregazioni si applicano a tutte le righe della tabella. Nelle misure, non c'è concetto di riga corrente poiché i calcoli aggregano tutte le righe collettivamente.
Vediamo adesso un esempio di formula DAX di misura:
Profit margin = SUM ( financials[Profit] ) / SUM ( financials[Sales] )
In questo caso, viene derivata una singola cifra sommando la colonna Profit e poi dividendo per la somma della colonna Sales. Poiché DAX esegue un'aggregazione, non richiede informazioni specifiche sulla riga, il che significa che questa misura non ha un contesto di riga.
Per stabilire un contesto di riga all'interno di una misura, è necessario utilizzare funzioni specializzate note come iteratori. Esempi di questi includono SUMX, AVERAGEX, COUNTX. Questi iteratori calcolano le operazioni riga per riga e aggregano i risultati (come somma, media, conteggio, ecc.). Questo approccio definisce esplicitamente il contesto di riga tramite l'uso di queste funzioni iteratrici.
Questo di seguito è un sempio di funzione iteratore:
Average Cost Per Unit = AVERAGEX ( financials, financials[COGS] / financials[Units Sold] )
In questo esempio vengono eseguiti due calcoli: innanzitutto, l'espressione viene valutata riga per riga e successivamente il risultato viene utilizzato nella funzione AVERAGE (media). Un metodo alternativo per ottenere lo stesso risultato è prima creare una colonna calcolata chiamata 'Cost Price Per Unit', come mostrato in precedenza, e poi stabilire una misura separata di MEDIA per quella colonna. L'uso efficace delle funzioni iteratrici non solo migliora l'efficienza dei tuoi report, ma ottimizza anche l'uso della memoria consentendo di eseguire due calcoli con una sola formula.
Il contesto di filtro integra un contesto di riga specificando un sottoinsieme di righe o colonne come filtri all'interno del report. Questi filtri possono essere applicati in diversi modi:
Un metodo efficace per introdurre un contesto di filtro in una formula DAX è l'uso della funzione CALCULATE. Questa funzione consente di aggiungere uno o più parametri di filtro a una misura. Ad esempio, nell'esempio seguente creiamo una misura di margine di profitto filtrata specificamente per l'Italia:
ITA Profit Margin =
CALCULATE ( SUM ( financials[Profit] ) / SUM ( financials[Sales] ), financials[Country] = "Italy")
In sintesi, DAX in Power BI si distingue come un linguaggio di formule robusto in grado di gestire la modellazione dei dati, migliorare le intuizioni sui dati e presentare misure in modo efficace all'interno delle visualizzazioni di Power BI.
Abbiamo esaminato cosa sia una formula DAX in Power BI e la sua sintassi, così come le funzioni DAX e alcuni esempi di esse. Abbiamo anche discusso dell'importanza del contesto nelle formule DAX. Ora, dotati di questi strumenti fondamentali di DAX, stiamo solo grattando la superficie di ciò che DAX può realizzare.
Armarsi di queste tecniche di base di DAX significa iniziare a scoprire le immense capacità di questo linguaggio. Con una ricchezza di 250 funzioni in attesa di essere esplorate, padroneggiare DAX rappresenta una sfida formidabile e un viaggio estremamente gratificante.
DAX (Data Analysis Expressions) è un linguaggio di formule utilizzato in Power BI, Excel Power Pivot e Analysis Services. È progettato per eseguire analisi dei dati e calcoli sui modelli di dati, consentendo agli utenti di creare nuove informazioni dai dati esistenti.
DAX migliora Power BI consentendo agli utenti di creare calcoli e aggregazioni personalizzati, costruire misure complesse e creare colonne calcolate. Questa funzionalità permette di ottenere approfondimenti più approfonditi e un'analisi dei dati più sofisticata all'interno di report e dashboard.
Alcune caratteristiche chiave di DAX includono:
Sì, DAX può essere utilizzato con altri prodotti Microsoft come Excel Power Pivot e SQL Server Analysis Services (SSAS). Questo consente un approccio coerente all'analisi dei dati su diversi strumenti e piattaforme.
Alcune funzioni comuni di DAX includono:
Imparare efficacemente DAX implica:
Alcune best practice per l'utilizzo di DAX in Power BI includono:
Il team Modern Apps è specializzato nello sviluppo e nell'integrazione all'interno dell'intero ecosistema Microsoft 365. Progettiamo applicazioni native per le piattaforme Microsoft ed Azure e implementiamo processi aziendali che si integrano e massimizzano l'investimento aziendale effettuato con Microsoft 365.