Questa guida introduttiva è per gli utenti che non hanno esperienza con Power Pivot in Excel o progetti di modelli tabulari creati in SQL Server Data Tools. Lo scopo è quello di fornire un'introduzione rapida e semplice su come usare DAX (Data Analysis Expressions) per risolvere una serie di problemi di analisi e modellazione dei dati di base. Questo argomento include informazioni concettuali, una serie di attività che è possibile completare e alcuni quiz per testare ciò che si è appreso. Al termine di questo argomento, si dovrebbe avere una buona conoscenza dei concetti fondamentali di base in DAX.
Che cos'è DAX?
DAX è un insieme di funzioni, operatori e costanti che possono essere usati in una formula o espressione per calcolare e restituire uno o più valori. In parole povere, DAX consente di creare nuove informazioni dai dati già presenti nel modello.
Perché DAX è così importante?
È facile creare una cartella di lavoro e importare alcuni dati al suo interno. È anche possibile creare tabelle pivot o grafici pivot che visualizzano informazioni importanti senza usare formule DAX. Ma cosa succede se è necessario analizzare dati di vendita critici in diverse categorie di prodotti e per diversi intervalli di date? Oppure è necessario combinare dati di inventario importanti di più tabelle in origini dati diverse? Le formule DAX offrono questa funzionalità e molte altre importanti funzionalità. Imparare a creare formule DAX efficaci ti aiuterà a ottenere il massimo dai tuoi dati. Quando ottieni le informazioni di cui hai bisogno, puoi iniziare a risolvere problemi aziendali reali che influiscono sui tuoi profitti. Questa è Business Intelligence e DAX ti aiuterà a raggiungerla.
Prerequisiti
Si potrebbe avere già familiarità con la creazione di formule in Microsoft Excel. Queste conoscenze saranno utili per comprendere DAX, ma anche se non si ha esperienza con le formule di Excel, i concetti descritti di seguito consentiranno di iniziare subito a creare formule DAX e a risolvere i problemi di business intelligence reali.
Ci concentreremo in particolare sulla comprensione delle formule DAX usate nei calcoli. È necessario avere già familiarità con i concetti fondamentali relativi alle colonne calcolate e alle misure , noti anche come campi calcolati, descritti nella Guida di Power Pivot. È anche necessario avere familiarità con l'ambiente e gli strumenti di creazione di Power Pivot in Excel.
Cartella di lavoro di esempio
Il modo migliore per imparare DAX è creare alcune formule di base, usarlo con alcuni dati reali e vedere i risultati di persona. Gli esempi e le attività seguenti usano la cartella di lavoro Formulas.xlsx Contoso Sample DAX. È possibile scaricare la cartella di lavoro da http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. Dopo aver scaricato la cartella di lavoro nel computer, aprirla e quindi aprire la finestra di Power Pivot.
Cominciamo!
Dax verrà inquadrato in base a tre concetti fondamentali molto importanti: sintassi, funzioni e contesto. Naturalmente, ci sono altri concetti importanti in DAX, ma la comprensione di questi tre concetti fornirà la base migliore su cui costruire le tue competenze DAX.
Sintassi
Prima di creare formule personalizzate, esaminare la sintassi delle formule DAX. La sintassi include i vari elementi che costituiscono una formula o, più semplicemente, il modo in cui la formula è scritta. Si esamini, ad esempio, una semplice formula DAX usata per creare nuovi dati (valori) per ogni riga di una colonna calcolata, denominata Margine, in una tabella FactSales: (i colori del testo della formula sono solo a scopo illustrativo)
La sintassi di questa formula include gli elementi seguenti:
- L'operatore segno di uguale (=) indica l'inizio della formula e quando viene calcolata restituirà un risultato o un valore. Tutte le formule che calcolano un valore iniziano con un segno di uguale.
- La colonna di riferimento [SalesAmount] contiene i valori da cui si desidera eseguire la sottrazione. Un riferimento di colonna in una formula è sempre racchiuso tra parentesi quadre []. A differenza delle formule di Excel che fanno riferimento a una cella, una formula DAX fa sempre riferimento a una colonna.
- L'operatore matematico di sottrazione (-).
- La colonna di riferimento [CostoTotale] contiene i valori che si desidera sottrarre dai valori nella colonna [ImportoVendite].
Quando si cerca di capire come leggere una formula DAX, è spesso utile suddividere ciascuno degli elementi in un linguaggio che si pensa e si parla ogni giorno. Questa formula, ad esempio, può essere letta come:
Nella tabellaFactSales, per ogni riga della colonna calcolata Margine, calcolare (=) un valore sottraendo (-) i valori nella colonna [CostoTotale] dai valori nella colonna [ImportoVendite].
Esaminiamo un altro tipo di formula, quella che viene utilizzata in una misura:
Questa formula include i seguenti elementi di sintassi:
- Il nome della misura Somma dell'importo delle vendite. Le formule per le misure possono includere il nome della misura, seguito da due punti, seguito dalla formula di calcolo.
- L'operatore del segno di uguale (=) indica l'inizio della formula di calcolo. Una volta calcolato, restituirà un risultato.
- La funzione SOMMA somma tutti i numeri nella colonna [ImportoVendite]. Verranno fornite altre informazioni sulle funzioni in seguito.
- Le parentesi () racchiudono uno o più argomenti. Tutte le funzioni richiedono almeno un argomento. Un argomento passa un valore a una funzione.
- La tabella di riferimento FactSales.
- Colonna di riferimento [SalesAmount] nella tabella FactSales. Con questo argomento, la funzione SOMMA sa in quale colonna aggregare una SOMMA.
Questa formula può essere letta nel modo seguente:
Per la misuradenominata Somma dell'importo delle vendite, calcolare (=) la SOMMA dei valori nella colonna [ImportoVendite] della tabella FattoVendite.
Se inserita nell'area di rilascio Valori dell'elenco campi di una tabella pivot, questa misura calcola e restituisce i valori definiti da ogni cella della tabella pivot, ad esempio Cellulari negli Stati Uniti.
Questa formula presenta alcune differenze rispetto alla formula usata per la colonna calcolata Margine. In particolare, è stata introdotta una funzione, SOMMA. Le funzioni sono formule predefinite che semplificano l'esecuzione di calcoli complessi e modifiche con numeri, date, ora, testo e altro ancora. Verranno fornite altre informazioni sulle funzioni in seguito.
A differenza della colonna Margine calcolato in precedenza, la colonna [SalesAmount] è stata preceduta dalla tabella FactSales a cui appartiene la colonna. Questo è noto come nome di colonna completo in quanto include il nome della colonna preceduto dal nome della tabella. Per le colonne a cui viene fatto riferimento nella stessa tabella non è necessario includere il nome della tabella nella formula. Ciò può rendere le formule lunghe che fanno riferimento a molte colonne più brevi e più facili da leggere. Tuttavia, è buona norma includere sempre il nome della tabella nelle formule di misura, anche quando si è nella stessa tabella.
Nota
Se il nome di una tabella contiene spazi, parole chiave riservate o caratteri non consentiti, è necessario racchiuderlo tra virgolette singole. È inoltre necessario racchiudere i nomi delle tabelle tra virgolette se il nome contiene caratteri esterni all'intervallo di caratteri alfanumerici ANSI, indipendentemente dal fatto che le impostazioni locali lo supportino o meno.
È molto importante che le formule abbiano la sintassi corretta. Nella maggior parte dei casi, se la sintassi non è corretta, viene restituito un errore di sintassi. In altri casi, la sintassi potrebbe essere corretta, ma i valori restituiti potrebbero non essere quelli previsti. Power Pivot (e SQL Server Data Tools) include IntelliSense, una funzionalità usata per creare formule sintatticamente corrette agevolando la selezione degli elementi corretti.
Creiamo una formula semplice. Questa attività illustra meglio la sintassi della formula e in che modo la funzionalità IntelliSense nella barra della formula può essere d'aiuto.
Attività: Creare una formula semplice per una colonna calcolata
- Se non si è già nella finestra di Power Pivot, in Excel, sulla barra multifunzione di PowerPivot, fare clic su Finestra Power Pivot.
- Nella finestra Power Pivot fare clic sulla tabella FactSales (scheda).
- Scorrere fino alla colonna più a destra e quindi nell'intestazione della colonna fare clic su Aggiungi colonna.
- Fare clic nella barra della formula nella parte superiore della finestra di progettazione del modello.
Il cursore viene ora visualizzato nella barra della formula. La barra della formula è il punto in cui è possibile digitare una formula per una colonna calcolata o un campo calcolato.
Osserviamo i tre pulsanti a sinistra della barra della formula.
Quando il cursore è attivo nella barra della formula, questi tre pulsanti diventano attivi. Il pulsante più a sinistra, la X, è semplicemente un pulsante Annulla. Vai avanti e fai clic su di esso. Il cursore non viene più visualizzato nella barra della formula e i pulsanti Annulla e Segno di spunta non vengono più visualizzati. Proseguire e fare di nuovo clic sulla barra della formula. I pulsanti Annulla e segno di spunta ora vengono nuovamente visualizzati. Ciò significa che è possibile iniziare a immettere una formula.
Il pulsante del segno di spunta è il pulsante di controllo della formula. Non serve molto finché non si immette una formula. Ci torneremo tra poco.
Fare clic sul pulsante Fx . Vedrai che viene visualizzata una nuova finestra di dialogo; la finestra di dialogo Inserisci funzione. La finestra di dialogo Inserisci funzione è il modo più semplice per iniziare a immettere una formula DAX. Aggiungeremo una funzione a una formula quando creeremo una misura un po' più avanti, ma per il momento non è necessario aggiungere una funzione alla formula della colonna calcolata. Chiudere quindi la finestra di dialogo Inserisci funzione. - Nella barra della formula, digitare un segno di uguale =, quindi digitare una parentesi aperta [. Verrà visualizzata una piccola finestra con tutte le colonne della tabella FactSales. Questo è IntelliSense in azione.
Poiché le colonne calcolate vengono sempre create nella tabella attiva in cui ci si trova, non è necessario anteporre al nome della colonna il nome della tabella. Proseguire e scorrere verso il basso e quindi fare doppio clic su [SalesQuantity]. È anche possibile scorrere fino al nome della colonna desiderata e quindi premere TAB.
Il cursore è ora attivo a destra di [QuantitàVendite]. - Digitare uno spazio, quindi digitare un operatore di sottrazione - (segno meno) e quindi digitare un altro spazio.
- A questo punto, digitare un'altra parentesi quadra aperta [. Questa volta selezionare la colonna [ReturnQuantity] e premere INVIO.
Se si verifica un errore, esaminare attentamente la sintassi. Se necessario, confrontarla con la formula nella colonna Calcolato con margine descritta in precedenza.
Dopo aver premuto INVIO per completare la formula, la parola Calcolo viene visualizzata nella barra di stato nella parte inferiore della finestra di Power Pivot. Il processo procede rapidamente, anche se si sono appena calcolati nuovi valori per più di tre milioni di righe. - Fare clic con il pulsante destro del mouse sull'intestazione della colonna e rinominare la colonna, NetSales.
Tutto qui! È stata appena creata una formula DAX semplice ma molto potente. Per ogni riga della tabella FactSales, la formula NetSales calcola un valore sottraendo il valore della colonna [ReturnQuantity] dal valore della colonna [SalesQuantity]. Si noti come è stato appena detto "Per ogni riga". Questo è un assaggio di un altro concetto molto importante in DAX; Contesto riga. In seguito verranno fornite altre informazioni sul contesto delle righe.
Un aspetto molto importante da comprendere quando si digita un operatore in una formula DAX è il tipo di dati negli argomenti in uso. Ad esempio, se si digita la formula seguente, = 1 & 2, il valore restituito sarà un valore di testo di "12". Ciò è dovuto al fatto che l'operatore e commerciale (&) è per la concatenazione di testo. DAX interpreta questa formula nel modo seguente: Calcolare un risultato prendendo il valore 1 come testo e aggiungendo il valore 2 come testo. Se si digita = 1 + 2, DAX legge la formula nel modo seguente: Calcolare un risultato prendendo il valore numerico 1 e sommando il valore numerico 2. Il risultato è ovviamente "3", un valore numerico. DAX calcola i valori risultanti in base all'operatore nella formula, non in base al tipo di dati delle colonne usate nell'argomento. I tipi di dati in DAX sono molto importanti, ma non rientrano nell'ambito di questa guida introduttiva. Per altre informazioni sui tipi di dati e gli operatori nelle formule DAX, vedere le informazioni di riferimento su DAX (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) nella documentazione online.
Proviamone un altro. Questa volta si creerà una misura digitando la formula e usando IntelliSense. Non preoccuparti troppo se non comprendi appieno la formula. L'importante qui è imparare a creare una formula usando più elementi insieme nella sintassi corretta.
Attività: Creare una formula di misura
- Nella tabella FactSales fare clic in una qualsiasi cella vuota dell'area di calcolo. Questa è l'area di celle vuote sotto una tabella nella finestra di Power Pivot.
- Nella barra della formula digitare il nome Vendite trimestre precedente:.
- Digitare un segno di uguale = per iniziare la formula di calcolo.
- Digitare le prime lettere CAL, quindi fare doppio clic sulla funzione che si desidera utilizzare. In questa formula si vuole usare la funzione CALCOLA .
- Digitare una parentesi aperta ( per iniziare gli argomenti da passare alla funzione CALCOLA.
Si noti che dopo aver digitato la parentesi aperta, IntelliSense mostra gli argomenti necessari per la funzione CALCOLA. Imparerai a conoscere gli argomenti tra un po'. - Digitare le prime lettere della tabella FactSales , quindi nell'elenco a discesa fare doppio clic su FactSales[Sales].
- Digitare un punto e virgola (;) per specificare il primo filtro, quindi digitare PRE e fare doppio clic sulla funzione PREVIOUSQUARTER .
Dopo aver selezionato la funzione PREVIOUSQUARTER, viene visualizzata un'altra parentesi iniziale che indica che è necessario un altro argomento. questa volta per la funzione PREVIOUSQUARTER. - Digitare le prime lettere Dim e quindi fare doppio clic su DimDate[DateKey].
- Chiudere sia l'argomento passato alla funzione PREVIOUSQUARTER sia alla funzione CALCOLA digitando due parentesi di chiusura )).
La formula dovrebbe avere un aspetto simile al seguente:
Vendite del trimestre precedente:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey])) - Fare clic sul pulsante Controlla formula sulla barra della formula per convalidare la formula. Se viene visualizzato un errore, verificare ogni elemento della sintassi.
Ce l'hai fatta! Hai appena creato una misura usando DAX, e non è facile. Questa formula consente di calcolare le vendite totali per il trimestre precedente in base ai filtri applicati in una tabella pivot o in un grafico pivot.
Ti sono appena stati presentati diversi aspetti importanti delle formule DAX. Prima di tutto, questa formula includeva due funzioni. Si noti che la funzione PREVIOUSQUARTER è annidata come argomento passato alla funzione CALCOLA. 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 molto difficile da creare e debuggare, e probabilmente non sarebbe nemmeno molto veloce.
In questa formula sono stati utilizzati anche i filtri. I filtri restringono ciò che verrà calcolato. In questo caso è stato selezionato un filtro come argomento, che in realtà è un'altra funzione. Ulteriori informazioni sui filtri verranno fornite in seguito.
Infine, è stata utilizzata la funzione CALCOLA. Questa è una delle funzioni più potenti in DAX. Quando si creano modelli di dati e formule più complesse, questa funzione verrà probabilmente usata più volte. La discussione sulla funzione CALCULATE non rientra nell'ambito di questa Guida introduttiva, ma man mano che la tua conoscenza di DAX cresce, presta particolare attenzione a questo.
Nota
In genere, per usare le funzioni di Business Intelligence per le gerarchie temporali nelle formule DAX, è necessario specificare una colonna data univoca usando la finestra di dialogo Contrassegna come tabella data. Nella cartella di lavoro Contoso DAX Formula Samples.xlsx la colonna DateKey nella tabella DimDate è selezionata come colonna data univoca.
Credito extra
Ci si potrebbe chiedere: "Qual è la formula DAX più semplice che è possibile creare?" Beh, la risposta è "la formula che non devi". Questo è esattamente ciò che è possibile fare usando una funzione di aggregazione standard in una misura. Quasi tutti i modelli di dati devono filtrare e calcolare su dati aggregati. Ad esempio, la funzione SUM nella misura Sum of Sales Amount visualizzata in precedenza viene usata per sommare tutti i numeri in una particolare colonna. DAX include diverse altre funzioni che aggregano i valori. È possibile creare automaticamente formule usando aggregazioni standard usando la funzionalità Somma automatica.
Attività di credito aggiuntivo: Creare una formula di misura usando la funzionalità Somma automatica
- Nella tabella FactSales scorrere fino alla colonna ReturnQuantity e quindi fare clic sull'intestazione di colonna per selezionare l'intera colonna.
- Nel gruppo Calcoli della scheda Home fare clic sul pulsante Somma automatica.
Fare clic sulla freccia in giù accanto a Somma automatica e quindi fare clic su Media (si noti anche le altre funzioni di aggregazione standard che è possibile usare).
Immediatamente viene creata una nuova misura con il nome Media di QuantitàRestituita: seguito dalla formula =MEDIA([QuantitàRestituita]).
Non è stato facile? Naturalmente, non tutte le formule create saranno così semplici. Tuttavia, usando la funzionalità Somma automatica, è possibile creare formule in modo semplice e rapido usando calcoli di aggregazione standard.
Questo dovrebbe fornire una buona comprensione della sintassi utilizzata nelle formule DAX. Sono state inoltre presentate alcune funzionalità davvero interessanti come IntelliSense e Somma automatica che consentono di creare formule in modo rapido, semplice e accurato. Naturalmente c'è molto di più che puoi imparare sulla sintassi. Un buon posto per altre informazioni è la documentazione di riferimento di DAX o SQL Books Online.
Sintassi QuickQuiz
- A cosa serve questo pulsante sulla barra della formula?
- Cosa circonda sempre un nome di colonna in una formula DAX?
- Come si scrive una formula per:
Nella tabella DimProduct, per ogni riga della colonna calcolata UnitMargin, calcolare un valore sottraendo i valori nella colonna UnitCost dai valori nella colonna PrezzoUnitario?
Le risposte sono fornite alla fine di questo argomento.
Funzioni
Le funzioni sono formule predefinite che eseguono calcoli usando valori specifici, denominati argomenti, in un ordine o in una struttura specifica. Gli argomenti possono essere costituiti da altre funzioni, un'altra formula, riferimenti di colonna, numeri, testo, valori logici come VERO o FALSO o costanti.
DAX include le seguenti categorie di funzioni: data e ora, funzioni informatiche, logiche, matematiche, statistiche, di testo e di intelligence per le gerarchie temporali. Se si ha familiarità con le funzioni nelle formule di Excel, molte delle funzioni di DAX appariranno simili. tuttavia, le funzioni DAX sono univoche nei modi seguenti:
- Una funzione DAX fa sempre riferimento a una colonna completa o a una tabella. Se si vogliono usare solo determinati valori di una tabella o di una colonna, è possibile aggiungere filtri alla formula.
- Se è necessario personalizzare i calcoli riga per riga, DAX fornisce funzioni che consentono di usare il valore della riga corrente o un valore correlato come tipo di argomento, per eseguire calcoli che variano in base al contesto. Verranno fornite altre informazioni sul contesto in seguito.
- DAX include molte funzioni che restituiscono una tabella anziché un valore. La tabella non viene visualizzata, ma viene utilizzata per fornire input ad altre funzioni. Ad esempio, è possibile recuperare una tabella e quindi contare i valori distinti in essa contenuti oppure calcolare somme dinamiche tra tabelle o colonne filtrate.
- DAX include un'ampia gamma di funzioni di intelligence basata sulle gerarchie temporali. Queste funzioni consentono di definire o selezionare intervalli di date ed eseguire calcoli dinamici basati su di essi. Ad esempio, è possibile confrontare le somme tra periodi paralleli.
A volte è difficile sapere quali funzioni potrebbe essere necessario usare in una formula. Power Pivot e Progettazione modelli tabulari in SQL Server Data Tools includono la funzionalità Inserisci funzione, una finestra di dialogo che consente di selezionare le funzioni in base alla categoria e fornisce brevi descrizioni per ogni funzione.
Creare una nuova formula che include una funzione che verrà selezionata usando la funzionalità Inserisci funzione:
Attività: Aggiungere una funzione a una formula usando Inserisci funzione
- Nella tabella FactSales scorrere fino alla colonna più a destra e quindi nell'intestazione di colonna fare clic su Aggiungi colonna.
- Nella barra della formula digitare un segno di uguale, =.
- Fai clic sul pulsante Inserisci funzione .
Verrà visualizzata la finestra di dialogo Inserisci funzione . - Nella finestra di dialogo Inserisci funzione fare clic sulla casella di riepilogo Selezionare una categoria . Per impostazione predefinita, l'opzione Tutto è selezionata e tutte le funzioni della categoria Tutte sono elencate di seguito. Le funzioni sono tante, quindi è consigliabile filtrare le funzioni per individuare più facilmente il tipo di funzione che si sta cercando.
- Per questa formula si vogliono restituire alcuni dati già esistenti in un'altra tabella. Per questo, utilizzerai una funzione nella categoria Filtro. Fare quindi clic sulla categoria Filtro e quindi in Selezionare una funzione scorrere verso il basso e fare doppio clic sulla funzione CORRELATE. Fare clic su OK per chiudere la finestra di dialogo Inserisci funzione (Inserisci funzione ).
- Usare IntelliSense per trovare e selezionare la colonna DimChannel[ChannelName].
- Chiudere la formula e quindi premere INVIO.
- Dopo aver premuto INVIO per completare la formula, la parola Calcolo viene visualizzata nella barra di stato nella parte inferiore della finestra di Power Pivot. A questo punto si noterà che è stata appena creata una nuova colonna nella tabella FactSales con le informazioni sul canale della tabella DimChannel.
- Rinominare la colonna Canale.
La formula dovrebbe avere un aspetto simile al seguente: =RELATED(DimChannel[ChannelName])
È stata appena presentata un'altra funzione molto importante in DAX, la funzione RELATED . La funzione RELATED restituisce valori da un'altra tabella. È possibile usare RELATED purché esista una relazione tra la tabella in cui ci si trova attualmente e la tabella che contiene i valori che si desidera ottenere. Naturalmente, la funzione RELATED ha immense possibilità. In questo caso, è ora possibile includere il canale di vendita per ogni vendita nella tabella FactSales. Ora è possibile nascondere la tabella DimChannel dall'elenco di campi della tabella pivot, semplificando lo spostamento e visualizzando solo le informazioni più importanti realmente necessarie. Analogamente alla funzione CALCOLA descritta in precedenza, la funzione CORRELATO è molto importante e probabilmente la userai molte volte.
Come si può vedere, le funzioni in DAX possono aiutare a creare formule molto efficaci. In realtà abbiamo solo toccato le basi delle funzioni. Man mano che le competenze di DAX migliorano, si creeranno formule usando molte funzioni diverse. Uno dei posti migliori per ottenere informazioni dettagliate su tutte le funzioni DAX è nelle informazioni di riferimento su DAX (Data Analysis Expressions).
Funzioni QuickQuiz
- A cosa fa sempre riferimento una funzione?
- Una formula può contenere più funzioni?
- Quale categoria di funzioni useresti per concatenare due stringhe di testo in un'unica stringa?
Le risposte sono fornite alla fine di questo argomento.
Contesto
Il contesto è uno dei concetti DAX più importanti da capire. Esistono due tipi di contesto in DAX; Contesto di riga e contesto di filtro. Esamineremo prima il contesto delle righe.
Contesto riga
Il contesto della riga è più facilmente pensato come la riga corrente. Ad esempio, ricordi la colonna Margine calcolato visualizzata in precedenza durante l'apprendimento della sintassi? La formula =[SalesAmount] - [TotalCost] calcola un valore nella colonna Margine per ogni riga della tabella. I valori per ogni riga vengono calcolati dai valori in altre due colonne, [SalesAmount] e [TotalCost] nella stessa riga. DAX può calcolare i valori per ogni riga nella colonna Margin perché ha il contesto: Per ogni riga, prende i valori nella colonna [TotalCost] e li sottrae dai valori nella colonna [SalesAmount].
Nella cella selezionata mostrata sotto, il valore $ 49,54 nella riga corrente è stato calcolato sottraendo il valore $ 51,54 nella colonna [Costo totale] dal valore $ 101,08 nella colonna [SalesAmount].
Il contesto delle righe non si applica solo alle colonne calcolate. Il contesto di riga si applica anche ogni volta che una formula ha una funzione che applica filtri per identificare una singola riga in una tabella. La funzione applicherà intrinsecamente un contesto di riga per ogni riga della tabella su cui sta filtrando. Questo tipo di contesto di riga si applica più spesso alle misure.
Contesto del filtro
Il contesto del filtro è un po' più difficile da capire rispetto al contesto delle righe. Il contesto di filtro è facilmente considerato 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 piuttosto in aggiunta al contesto di riga. Ad esempio, per limitare ulteriormente i valori da includere in un calcolo, è possibile applicare un contesto di filtro che non solo specifica il contesto di riga, ma anche un determinato valore (filtro) in tale contesto di riga.
Il contesto del filtro è facilmente visibile nelle tabelle pivot. Se ad esempio si aggiunge CostoTotale all'area Valori e quindi si aggiungono Anno e Area alla riga o alle colonne, si definisce un contesto di filtro che seleziona un subset di dati in base a un determinato anno e area.
Perché il contesto del filtro è così importante per DAX? Infatti, mentre il contesto di filtro può essere applicato più facilmente aggiungendo etichette di colonna e di riga e filtri dei dati in una tabella pivot, il contesto di filtro può essere applicato anche in una formula DAX definendo un filtro mediante funzioni quali TUTTO, CORRELATO, FILTRO, CALCOLO, PER RELAZIONI e per altre misure e colonne. Esamini, ad esempio, la formula seguente in una misura denominata StoreSales:
È chiaro che questa formula è più complessa di altre che hai visto. Tuttavia, per comprendere meglio questa formula, è possibile suddividerla, proprio come abbiamo fatto con altre formule.
Questa formula include i seguenti elementi di sintassi:
- Il nome della misura StoreSales, seguito dai due punti :.
- L'operatore del segno di uguale (=) indica l'inizio della formula.
- La funzione CALCULATE valuta un'espressione, come argomento, in un contesto modificato dai filtri specificati.
- Le parentesi () racchiudono uno o più argomenti.
- Una misura [Vendite] nella stessa tabella di un'espressione. La misura Vendite contiene la formula: =SOMMA(FactSales[SalesAmount]).
- Ogni filtro è separato da una virgola (;).
- La colonna di riferimento e un determinato valore, DimChannel[ChannelName] ="Store", come filtro.
Questa formula garantisce che solo i valori di vendita, definiti dalla misura Vendite, come filtro, vengano calcolati solo per le righe nella colonna DimChannel[ChannelName] con il valore "Store", come filtro.
Come si può immaginare, la possibilità di definire il contesto di filtro all'interno di una formula ha capacità immense e potenti. La possibilità di fare riferimento solo a un determinato valore in una tabella correlata è solo un esempio. Non preoccuparti se non comprendi subito completamente il contesto. Creando formule personalizzate, è possibile comprendere meglio il contesto e perché è così importante in DAX.
Contesto QuickQuiz
- Quali sono i due tipi di contesto?
- Che cos'è il contesto del filtro?
- Che cos'è il contesto di riga?
Le risposte sono fornite alla fine di questo argomento.
Riepilogo
Ora che si hanno una conoscenza di base dei concetti più importanti in DAX, è possibile iniziare a creare formule DAX per le colonne calcolate e le misure autonomamente. DAX può essere un po' complicato da imparare, ma ci sono molte risorse a disposizione. Dopo aver letto questo argomento alcune volte e aver sperimentato alcune delle proprie formule, è possibile ottenere altre informazioni su altri concetti e formule di DAX che possono aiutare a risolvere i propri problemi aziendali. Sono disponibili molte risorse DAX nella Guida di Power Pivot, nella documentazione online di SQL Server, nei white paper e nei blog di Microsoft e dei principali professionisti della BI. Il wiki del Centro risorse DAX (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) è un ottimo punto di partenza. Anche il riferimento DAX (Data Analysis Expressions) è un'ottima risorsa. Assicurarsi di salvarlo nei Preferiti.
Il whitepaper DAX nel modello tabulare BI, disponibile per il download (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409) offre una panoramica più dettagliata dei concetti introdotti qui, nonché di molti altri concetti e formule avanzati. Questo whitepaper usa anche lo stesso esempio di Contoso DAX Formulas.xlsx cartella di lavoro già disponibile.
Risposte a QuickQuiz
Sintassi:
- Apre la funzione Inserisci funzione.
- Parentesi quadre [].
- =[PrezzoUnitario] - [CostoUnitario]
Funzioni:
- Una tabella e una colonna.
- Sì. Una formula può contenere fino a 64 funzioni annidate.
- Funzioni di testo.
Contesto:
- Contesto di riga e contesto di filtro.
- Uno o più filtri in un calcolo che determina un singolo valore.
- Riga corrente.