Informazioni di base su DAX in Power BI Desktop

Gli utenti che non hanno familiarità con Power BI Desktop possono usare questo articolo come introduzione rapida e semplice su come usare DAX (Data Analysis Expressions) per risolvere molti calcoli di base e problemi di analisi dei dati. Verranno illustrate alcune informazioni concettuali, una serie di attività che è possibile completare e un controllo delle conoscenze per testare ciò che si è appreso. Dopo aver completato questo articolo, è necessario avere una buona conoscenza dei concetti fondamentali più importanti in DAX.

Che cosa è DAX?

DAX è una raccolta di funzioni, operatori e costanti che possono essere usate in una formula o in un'espressione per calcolare e restituire uno o più valori. DAX consente di creare nuove informazioni dai dati già presenti nel modello.

Perché DAX è così importante?

È facile creare un nuovo file di Power BI Desktop e importarvi alcuni dati. È possibile anche creare report che mostrano informazioni preziose senza usare alcuna formula DAX. Ma cosa succede se è necessario analizzare la percentuale di crescita tra le categorie di prodotti e per intervalli di date diversi? In alternativa, è necessario calcolare la crescita annuale rispetto alle tendenze del mercato? Le formule DAX consentono di eseguire queste operazioni e dispongono di molte altre funzionalità importanti. Imparare a creare formule DAX efficaci aiuterà a ottenere il massimo dai dati in uso. Quando si acquisiscono le informazioni necessarie, è possibile iniziare a risolvere i problemi aziendali reali che incidono sui profitti.

Prerequisiti

È possibile che si abbia già familiarità con la creazione di formule in Microsoft Excel e che le informazioni siano utili per comprendere DAX. Tuttavia, anche se non si ha esperienza con le formule di Excel, i concetti descritti qui consentiranno di iniziare subito a creare formule DAX e risolvere i problemi di business intelligence reali.

Ci concentreremo sulla comprensione delle formule DAX usate nei calcoli, in modo più specifico, nelle misure e nelle colonne calcolate. Si dovrebbe avere già familiarità con l'uso di Power BI Desktop per importare dati e aggiungere campi a un report ed è anche necessario avere familiarità con i concetti fondamentali delle misure e delle colonne calcolate.

Cartella di lavoro di esempio

Il modo migliore per imparare a usare DAX consiste nel creare alcune formule di base, applicarle a dati effettivi e constatare personalmente i risultati. Gli esempi e le attività qui usano il file Contoso Sales Sample for Power BI Desktop. Questo file di esempio è lo stesso usato nell'articolo Esercitazione: Creare misure personalizzate in Power BI Desktop .

Cominciamo

Verrà illustrata la comprensione di DAX intorno a tre concetti fondamentali: sintassi, funzioni e contesto. Esistono altri concetti importanti in DAX, ma la comprensione di questi tre concetti fornirà le basi migliori per creare le competenze DAX.

Sintassi

Prima di creare formule personalizzate, si esaminerà la sintassi della formula DAX. La sintassi include i vari elementi che costituiscono una formula o più semplicemente come viene scritta la formula. Ecco un esempio di una semplice formula DAX per una misura:

Screenshot di una formula DAX con puntatori a singoli elementi della sintassi.

La formula include gli elementi di sintassi seguenti:

R. Nome della misura, Vendite totali.

B. Operatore di uguaglianza (=), che indica l'inizio della formula. Quando viene calcolato, restituisce un risultato.

C. La funzione DAX SUM, che aggiunge tutti i numeri nella colonna Sales[SalesAmount]. Altre informazioni sulle funzioni verranno fornite più avanti.

D. Parentesi (), che racchiudono un'espressione che contiene uno o più argomenti. La maggior parte delle funzioni richiede almeno un argomento. ovvero un elemento che passa un valore a una funzione.

E. Tabella a cui si fa riferimento, Sales.

F. Colonna a cui si fa riferimento, [SalesAmount], nella tabella Sales. Grazie a questo argomento, la funzione SUM riconosce la colonna su cui aggregare una somma, ovvero il risultato dell'applicazione di SUM.

Quando si cerca di comprendere una formula DAX, è spesso utile dividere ciascuno degli elementi esprimendoli in un linguaggio comune. È possibile ad esempio leggere questa formula come:

Per la misura denominata Total Sales, calcolare (=) la somma dei valori nella colonna [SalesAmount ] della tabella Sales.

Quando viene aggiunto a un report, questa misura calcola e restituisce valori sommando gli importi delle vendite per ognuno degli altri campi inclusi, ad esempio Cell Telefono s negli Stati Uniti.

Si potrebbe pensare: "Non si tratta di questa misura che esegue la stessa operazione come se fosse sufficiente aggiungere il campo SalesAmount al report?" Beh, sì. Tuttavia, c'è un buon motivo per creare una misura personalizzata che somma i valori del campo SalesAmount: è possibile usarlo come argomento in altre formule. Questa soluzione potrebbe sembrare poco confusa ora, ma man mano che le competenze delle formule DAX aumentano, sapendo che questa misura renderà le formule e il modello più efficiente. In effetti, la misura Total Sales verrà visualizzata come argomento in altre formule in un secondo momento.

Esaminiamo alcune altre informazioni su questa formula. In particolare, è stata introdotta una funzione SUM. Le funzioni sono formule predefinite che semplificano l'esecuzione di calcoli e manipolazioni complessi con numeri, date, ore, testo e altro ancora. Altre informazioni sulle funzioni verranno fornite più avanti.

Si noterà anche che il nome della colonna [SalesAmount] è stato preceduto dalla tabella Sales in cui appartiene la colonna. Si tratta di un nome di colonna completo poiché include il nome di colonna preceduto da quello della tabella. Le colonne a cui si fa riferimento nella stessa tabella non richiedono che il nome della tabella sia incluso nella formula, che può rendere le formule lunghe che fanno riferimento a molte colonne più brevi e più facili da leggere. Tuttavia, è consigliabile includere il nome della tabella nelle formule di misura, anche quando si trova nella stessa tabella.

Nota

Se un nome di tabella contiene spazi, parole chiave riservate o caratteri non consentiti, è necessario racchiudere il nome della tabella tra virgolette singole. È anche necessario racchiudere i nomi di tabella tra virgolette se il nome contiene caratteri esterni all'intervallo di caratteri alfanumerici ANSI, indipendentemente dal fatto che le impostazioni locali supportino o meno il set di caratteri.

È importante che le formule abbiano la sintassi corretta. Nella maggior parte dei casi, se la sintassi non è corretta, viene restituito un errore, In altri casi, la sintassi potrebbe essere corretta, ma i valori restituiti potrebbero non essere quello previsto. L'editor DAX in Power BI Desktop include una funzionalità per i suggerimenti, che consente di selezionare gli elementi giusti al fine di creare formule sintatticamente corrette.

Si creerà una formula di esempio. Questa attività consente di comprendere meglio la sintassi delle formule e il modo in cui la funzionalità di suggerimenti nella barra della formula può essere utile.

Attività: Creare una formula di misura

  1. Scaricare e aprire il file Di esempio Contoso Sales di Power BI Desktop.

  2. Nell'elenco dei campi della visualizzazione Report fare clic con il pulsante destro del mouse sulla tabella Sales e quindi scegliere Nuova misura.

  3. Nella barra della formula sostituire Measure immettendo un nuovo nome di misura, Previous Quarter Sales.

  4. Dopo il segno di uguale, digitare le prime lettere CAL, quindi fare doppio clic sulla funzione che si vuole usare. In questa formula si desidera utilizzare la funzione CALCULATE .

    Si userà la funzione CALCULATE per filtrare gli importi da sommare in base a un argomento passato alla funzione CALCULATE. Questo tipo di funzione viene definito funzioni di annidamento. La funzione CALCULATE ha almeno due argomenti. La prima è l'espressione da valutare e la seconda è un filtro.

  5. Dopo la parentesi di apertura ( per la funzione CALCULATE , digitare SUM seguito da un'altra parentesi aperta (.

    Successivamente, si passerà un argomento alla funzione SUM.

  6. Iniziare a digitare Sal e quindi selezionare Sales[SalesAmount], seguito da una parentesi chiusa ).

    Questo passaggio crea il primo argomento di espressione per la funzione CALCULATE.

  7. Digitare una virgola (,) seguita da uno spazio per specificare il primo filtro e quindi digitare PREVIOUSQUARTER.

    Si userà la funzione di business intelligence per le gerarchie temporali PREVIOUSQUARTER per filtrare i risultati SUM in base al trimestre precedente.

  8. Dopo la parentesi di apertura ( per la funzione PREVIOUSQUARTER digitare Calendar[DateKey].

    La funzione PREVIOUSQUARTER ha un argomento, una colonna contenente un intervallo contiguo di date. In questo caso, si tratta della colonna DateKey nella tabella Calendar.

  9. Chiudere entrambi gli argomenti passati alla funzione PREVIOUSQUARTER e alla funzione CALCULATE digitando due parentesi di chiusura )).

    La formula dovrebbe ora essere simile alla seguente:

    Previous Quarter Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))

  10. Selezionare il segno Icona segno di spunta di spunta nella barra della formula o premere INVIO per convalidare la formula e aggiungerla alla tabella Sales.

Ce l'hai fatta! È stata appena creata una misura complessa usando DAX. Questa formula consente di calcolare le vendite totali per il trimestre precedente, a seconda dei filtri applicati in un report. Ad esempio, è possibile inserire SalesAmount e la nuova misura Previous Quarter Sales dalla tabella Sales in un istogramma a colonne cluster. Nella tabella Calendario aggiungere quindi Year come filtro dei dati e selezionare 2011. Successivamente, aggiungere QuarterOfYear come un altro filtro dei dati e selezionare 4 e si ottiene un grafico simile al seguente:

Grafico Sales e SalesAmount trimestre precedente

Tenere presente che il modello di esempio contiene solo una piccola quantità di dati sulle vendite da 1/1/1/2011 a 1/19/2013. Se si seleziona un anno o un trimestre in cui SalesAmount non può essere sommato o la nuova misura non può calcolare i dati sulle vendite per il trimestre corrente o precedente, non vengono visualizzati dati per tale periodo. Ad esempio, se si seleziona 2011 per Year e 1 per QuarterOfYear, non vengono visualizzati dati per Previous Quarter Sales perché non sono presenti dati per il quarto trimestre del 2010.

Sono stati introdotti diversi aspetti importanti delle formule DAX:

  • Questa formula includeva due funzioni. PREVIOUSQUARTER, una funzione di business intelligence per le gerarchie temporali, viene annidata come argomento passato a CALCULATE, una funzione di filtro.

    Le formule DAX possono contenere fino a 64 funzioni annidate. È improbabile che una formula contenga così tante funzioni annidate. In effetti, una formula di questo tipo sarebbe difficile da creare ed eseguire il debug e probabilmente non sarebbe veloce neanche.

  • In questa formula sono stati usati anche i filtri. I filtri restringono gli elementi che verranno calcolati. In questo caso, è stato selezionato un filtro come argomento, ovvero il risultato di un'altra funzione. Altre informazioni sui filtri verranno fornite più avanti.

  • È stata usata la funzione CALCULATE. Questa funzione è una delle funzioni più potenti in DAX. Quando si creano modelli e si creano formule più complesse, è probabile che questa funzione venga usata più volte. Anche se altre discussioni sulla funzione CALCULATE non rientrano nell'ambito di questo articolo, man mano che cresce la conoscenza di DAX, prestare particolare attenzione.

Sintassi QuickQuiz

  1. Che cosa fa questo pulsante sulla barra della formula?

    Selezione pulsante

  2. Che cosa racchiude sempre un nome di colonna in una formula DAX?

Le risposte vengono fornite alla fine di questo articolo.

Funzioni

Le funzioni sono formule predefinite che eseguono calcoli usando valori specifici, denominati argomenti, in un ordine o una struttura specifica. Gli argomenti possono essere altre funzioni, un'altra formula, espressione, riferimenti a colonne, numeri, testo, valori logici come TRUE o FAL edizione Standard o costanti.

DAX include le categorie di funzioni seguenti: Data e ora, Business Intelligence per le gerarchie temporali, Informazioni, Logiche, Matematiche, Statistiche, Testo, Padre/Figlio e Altre funzioni. Se si ha familiarità con le funzioni nelle formule di Excel, molte delle funzioni in DAX appariranno simili all'utente; Tuttavia, le funzioni DAX sono univoche nei modi seguenti:

  • Una funzione DAX fa sempre riferimento a una colonna completa o una tabella. Se si desidera utilizzare solo particolari valori di una tabella o colonna, è possibile aggiungere filtri alla formula.

  • Se è necessario personalizzare i calcoli su base riga per riga, DAX fornisce funzioni che consentono di usare il valore di riga corrente o un valore correlato come tipo di argomento per eseguire calcoli in base al contesto. Altre informazioni sul contesto verranno fornite più avanti.

  • DAX include molte funzioni che restituiscono una tabella anziché un valore. La tabella non viene visualizzata, ma viene usata per fornire input ad altre funzioni. Ad esempio, è possibile recuperare una tabella e contare i valori distinti in essa contenuti o calcolare somme dinamiche nelle tabelle o colonne filtrate.

  • DAX include varie funzioni di Business Intelligence per le gerarchie temporali. Queste funzioni consentono di definire o selezionare intervalli di date ed eseguire calcoli dinamici basati su di essi. Ad esempio, è possibile confrontare somme in periodi paralleli.

  • Excel ha una funzione popolare, VLOOKUP. Le funzioni DAX non accettano una cella o un intervallo di celle come riferimento come VLOOKUP in Excel. Le funzioni DAX accettano una colonna o una tabella come riferimento. Tenere presente che in Power BI Desktop si usa un modello di dati relazionale. La ricerca di valori in un'altra tabella è semplice e nella maggior parte dei casi non è necessario creare formule.

    Come si può notare, le funzioni in DAX consentono di creare formule potenti. Sono stati toccati solo i concetti di base delle funzioni. Man mano che le competenze DAX aumentano, si creeranno formule usando molte funzioni diverse. Una delle posizioni migliori per ottenere informazioni dettagliate su ognuna delle funzioni DAX è disponibile nel riferimento alle funzioni DAX.

Funzioni QuickQuiz

  1. Che cosa fa sempre riferimento a una funzione?
  2. Una formula può contenere più funzioni?
  3. Quale categoria di funzioni si userebbe per concatenare due stringhe di testo in una sola stringa?

Le risposte vengono fornite alla fine di questo articolo.

Contesto

Il contesto è uno dei concetti DAX più importanti da comprendere. Esistono due tipi di contesto in DAX: contesto di riga e contesto di filtro. Si esaminerà innanzitutto il contesto di riga.

Contesto di riga

Il contesto di riga può essere pensato come la riga corrente e si applica ogni volta che in una formula è presente una funzione che specifica i filtri per identificare una singola riga in una tabella. La funzione applicherà intrinsecamente un contesto di riga per ogni riga della tabella in cui viene filtrato. Questo tipo di contesto di riga si applica più spesso alle misure.

Contesto di filtro

Il contesto di filtro è un po' più difficile da capire rispetto al contesto di riga. È possibile considerare più facilmente il contesto di filtro come: uno o più filtri applicati in un calcolo che determina un risultato o un valore.

Il contesto di filtro non esiste al posto del contesto di riga; si applica invece al contesto di riga. Per restringere ulteriormente i valori da includere in un calcolo, ad esempio, è possibile applicare un contesto di filtro, che specifica non solo il contesto di riga, ma anche un particolare valore (filtro) in tale contesto.

Il contesto del filtro è facilmente visibile nei report. Ad esempio, quando si aggiunge TotalCost a una visualizzazione e quindi si aggiunge Anno e Area, si definisce un contesto di filtro che seleziona un subset di dati in base a un determinato anno e area geografica.

Il contesto di filtro è estremamente importante per DAX Si è visto che il contesto di filtro può essere applicato aggiungendo campi a una visualizzazione. Il contesto di filtro può essere applicato anche in una formula DAX definendo un filtro con funzioni quali ALL, RELATED, FILTER, CALCULATE, by relationships e da altre misure e colonne. Si esamini ad esempio la formula seguente in una misura denominata Store Sales:

Misura Store Sales

Per comprendere meglio questa formula, possiamo scomporla, in modo analogo ad altre formule.

La formula include gli elementi di sintassi seguenti:

R. Nome della misura, Store Sales.

B. Operatore di uguaglianza (=), che indica l'inizio della formula.

C. Funzione CALCULATE, che valuta un'espressione, come argomento, in un contesto modificato dai filtri specificati.

D. Parentesi (), che racchiudono un'espressione contenente uno o più argomenti.

E. Misura [Total Sales] nella stessa tabella di un'espressione. La misura Total Sales ha la formula : =SUM(Sales[SalesAmount]).

F. Virgola (,) che separa il primo argomento dell'espressione dall'argomento filtro.

G. Colonna di riferimento completa, Channel[ChannelName]. Questo è il contesto di riga. Ogni riga in questa colonna specifica un canale, ad esempio Store o Online.

H. Valore specifico, Store, come filtro. Questo è il contesto di filtro.

Questa formula garantisce che solo i valori di vendita definiti dalla misura Total Sales vengano calcolati solo per le righe nella colonna Channel[ChannelName], con il valore Store usato come filtro.

Come si immagina, la possibilità di definire il contesto di filtro all'interno di una formula implica potenzialità straordinarie. La capacità di fare riferimento solo a un valore particolare in una tabella correlata è solo uno di questi esempi. Non preoccuparti se non capisci completamente il contesto subito. Quando si creano formule personalizzate, si comprenderà meglio il contesto e perché è così importante in DAX.

Contesto QuickQuiz

  1. Quali sono i due tipi di contesto?
  2. Che cos'è il contesto di filtro?
  3. Che cos'è il contesto di riga?

Le risposte vengono fornite alla fine di questo articolo.

Riepilogo

Ora che si possiede una conoscenza di base dei concetti più importanti in DAX, è possibile iniziare a creare formule DAX per le misure in modo autonomo. Sebbene l'apprendimento di DAX possa sembrare complesso, è possibile sfruttare le numerose risorse disponibili. Dopo aver letto questo articolo e aver sperimentato alcune formule personalizzate, è possibile ottenere altre informazioni su altri concetti e formule DAX che consentono di risolvere i propri problemi aziendali. Sono disponibili molte risorse DAX. la più importante è data analysis expressions (DAX).

Poiché DAX è in giro da diversi anni in altri strumenti di Microsoft BI, ad esempio i modelli tabulari di Power Pivot e Analysis Services, sono disponibili molte informazioni di grande utilità. È possibile trovare altre informazioni nei libri, nei white paper e nei blog di Microsoft e dei principali professionisti di BI. Il Centro risorse DAX è anche un ottimo punto di partenza.

Risposte quickQuiz

Sintassi:

  1. Convalida e immette la misura nel modello.
  2. Parentesi quadre [].

Funzioni:

  1. Tabella e colonna.
  2. Sì. Una formula può contenere fino a 64 funzioni annidate.
  3. Funzioni di testo.

Contesto:

  1. Contesto di riga e contesto di filtro.
  2. Uno o più filtri in un calcolo che determina un singolo valore.
  3. Riga corrente.