Data Analysis Expressions (DAX) sembra inizialmente un po' intimidatorio, ma non farti ingannare dal nome. Le nozioni fondamentali su DAX sono molto facili da capire. Prima di tutto, DAX NON è un linguaggio di programmazione. DAX è un linguaggio delle formule. È possibile usare DAX per definire calcoli personalizzati per colonne calcolate e per misure (noti anche come campi calcolati). DAX include alcune delle funzioni usate nelle formule di Excel e altre funzioni progettate per l'uso con i dati relazionali ed eseguire un'aggregazione dinamica.
Informazioni sulle formule DAX
Le formule DAX sono molto simili alle formule di Excel. Per crearne uno, digitare un segno di uguale, seguito dal nome o dall'espressione di una funzione e da eventuali valori o argomenti obbligatori. Analogamente a Excel, DAX offre un'ampia gamma di funzioni che è possibile usare per usare stringhe, eseguire calcoli usando date e ore o creare valori condizionali.
Tuttavia, le formule DAX sono diverse nei seguenti modi importanti:
-
Se si vogliono personalizzare i calcoli riga per riga, DAX include funzioni che consentono di usare il valore della riga corrente o un valore correlato per eseguire calcoli che variano in base al contesto.
-
DaX include un tipo di funzione che restituisce una tabella come risultato, invece di un singolo valore. Queste funzioni possono essere usate per fornire input ad altre funzioni.
-
Funzioni di business intelligence per le funzionalità di business intelligencein DAX consentono calcoli usando intervalli di date e confrontano i risultati in periodi paralleli.
Dove usare le formule DAX
È possibile creare formule in Power Pivot in columns calcolati o in f ields calcolati.
Colonne calcolate
Una colonna calcolata è una colonna aggiunta a una tabella Power Pivot esistente. Invece di incollare o importare valori nella colonna, si crea una formula DAX che definisce i valori della colonna. Se si include la tabella Power Pivot in una tabella pivot (o grafico pivot), la colonna calcolata può essere usata come qualsiasi altra colonna di dati.
Le formule nelle colonne calcolate sono molto simili alle formule create in Excel. A differenza di Excel, tuttavia, non è possibile creare una formula diversa per righe diverse in una tabella. la formula DAX viene invece applicata automaticamente all'intera colonna.
Quando una colonna contiene una formula, il valore viene calcolato per ogni riga. I risultati vengono calcolati per la colonna non appena si crea la formula. I valori delle colonne vengono ricalcolati solo se i dati sottostanti vengono aggiornati o se viene usato il ricalcolo manuale.
È possibile creare colonne calcolate basate su misure e altre colonne calcolate. Evitare tuttavia di usare lo stesso nome per una colonna calcolata e una misura, in quanto ciò può generare risultati poco chiari. Quando si fa riferimento a una colonna, è consigliabile usare un riferimento di colonna completo per evitare di richiamare accidentalmente una misura.
Per informazioni più dettagliate, vedere Colonne calcolate in Power Pivot.
Misure
Una misura è una formula creata appositamente per l'uso in una tabella pivot (o grafico pivot) che usa Power Pivot dati. Le misure possono essere basate su funzioni di aggregazione standard, ad esempio CONTA.NUMERI o SOMMA, oppure è possibile definire una formula personalizzata usando DAX. Una misura viene usata nell'area Valori di una tabella pivot. Per inserire i risultati calcolati in un'area diversa di una tabella pivot, usare invece una colonna calcolata.
Quando si definisce una formula per una misura esplicita, non succede nulla finché non si aggiunge la misura in una tabella pivot. Quando si aggiunge la misura, la formula viene valutata per ogni cella nell'area Valori della tabella pivot. Poiché viene creato un risultato per ogni combinazione di intestazioni di riga e colonna, il risultato per la misura può essere diverso in ogni cella.
La definizione della misura creata viene salvata con la relativa tabella dati di origine. Viene visualizzato nell'elenco Campi tabella pivot ed è disponibile per tutti gli utenti della cartella di lavoro.
Per altre informazioni dettagliate sui campi calcolati, vedere Misure in Power Pivot.
Creazione di formule tramite la barra della formula
Power Pivot, come Excel, fornisce una barra della formula per semplificare la creazione e la modifica delle formule e la funzionalità Completamento automatico, per ridurre al minimo gli errori di digitazione e di sintassi.
Per immettere il nome di una tabella Iniziare a digitare il nome della tabella. Completamento automatico formule fornisce un elenco a discesa contenente nomi validi che iniziano con tali lettere.
Per immettere il nome di una colonna Digitare una parentesi quadra e quindi scegliere la colonna nell'elenco di colonne della tabella corrente. Per una colonna di un'altra tabella, iniziare a digitare le prime lettere del nome della tabella e quindi scegliere la colonna dall'elenco a discesa Completamento automatico.
Per altri dettagli e una procedura dettagliata su come creare formule, vedere Creare formule per i calcoli in Power Pivot.
Suggerimenti per l'uso di Completamento automatico
È possibile usare Completamento automatico formule al centro di una formula esistente con funzioni annidate. Il testo immediatamente prima del punto di inserimento viene usato per visualizzare i valori nell'elenco a discesa e tutto il testo dopo il punto di inserimento rimane invariato.
I nomi definiti creati per le costanti non vengono visualizzati nell'elenco a discesa Completamento automatico, ma è comunque possibile digitarli.
Power Pivot non aggiunge la parentesi di chiusura delle funzioni né corrisponde automaticamente alle parentesi. Verificare che ogni funzione sia sintatticamente corretta oppure che non sia possibile salvare o usare la formula.
Uso di più funzioni in una formula
È possibile annidare le funzioni, ovvero usare i risultati di una funzione come argomento di un'altra funzione. È possibile annidare fino a 64 livelli di funzioni nelle colonne calcolate. L'annidamento può tuttavia rendere difficile la creazione o la risoluzione dei problemi relativi alle formule.
Molte funzioni DAX sono progettate per essere usate esclusivamente come funzioni annidate. Queste funzioni restituiscono una tabella, che non può essere salvata direttamente come risultato; deve essere fornito come input per una funzione di tabella. Ad esempio, le funzioni SOMMAX, MEDIAX e MINX richiedono tutte una tabella come primo argomento.
Nota: All'interno delle misure esistono alcuni limiti per l'annidamento delle funzioni, per garantire che le prestazioni non siano influenzate dai molti calcoli richiesti dalle dipendenze tra colonne.
Confronto tra funzioni DAX e funzioni di Excel
La libreria di funzioni DAX è basata sulla libreria di funzioni di Excel, ma le librerie presentano molte differenze. Questa sezione riepiloga le differenze e le analogie tra le funzioni di Excel e le funzioni DAX.
-
Molte funzioni DAX hanno lo stesso nome e lo stesso comportamento generale delle funzioni di Excel, ma sono state modificate per eseguire tipi di input diversi e, in alcuni casi, potrebbero restituire un tipo di dati diverso. In genere, non è possibile usare funzioni DAX in una formula di Excel o formule di Excel in Power Pivot senza apportare modifiche.
-
Le funzioni DAX non accettano mai un riferimento di cella o un intervallo come riferimento, ma le funzioni DAX accettano invece una colonna o una tabella come riferimento.
-
Le funzioni di data e ora DAX restituiscono un tipo di dati datetime. Al contrario, le funzioni di data e ora di Excel restituiscono un numero intero che rappresenta una data come numero seriale.
-
Molte delle nuove funzioni DAX restituiscono una tabella di valori o esegono calcoli basati su una tabella di valori come input. Al contrario, Excel non ha funzioni che restituiscono una tabella, ma alcune funzioni possono funzionare con le matrici. La possibilità di fare riferimento facilmente a tabelle e colonne complete è una nuova caratteristica di Power Pivot.
-
In DAX sono disponibili nuove funzioni di ricerca simili alle funzioni di ricerca matrice e vettore di Excel. Tuttavia, le funzioni DAX richiedono che venga stabilita una relazione tra le tabelle.
-
Si prevede che i dati in una colonna siano sempre dello stesso tipo di dati. Se i dati non sono dello stesso tipo, DAX cambia l'intera colonna nel tipo di dati più adatto a tutti i valori.
Tipi di dati DAX
È possibile importare dati in un modello di dati Power Pivot da molte origini dati diverse che potrebbero supportare tipi di dati diversi. Quando si importano o caricano i dati e quindi si usano nei calcoli o nelle tabelle pivot, i dati vengono convertiti in uno dei tipi di dati Power Pivot. Per un elenco dei tipi di dati, vedere Tipi di dati nei modelli di dati.
Il tipo di dati della tabella è un nuovo tipo di dati in DAX usato come input o output per molte nuove funzioni. Ad esempio, la funzione FILTRO accetta una tabella come input e restituisce l'output di un'altra tabella che contiene solo le righe che soddisfano le condizioni di filtro. Combinando le funzioni di tabella con le funzioni di aggregazione, è possibile eseguire calcoli complessi su set di dati definiti dinamicamente. Per altre informazioni, vedere Aggregazioni in Power Pivot.
Formule e modello relazionale
La finestra Power Pivot è un'area in cui è possibile usare più tabelle di dati e connettere le tabelle in un modello relazionale. All'interno di questo modello di dati, le tabelle sono connesse tra loro tramite relazioni, che consentono di creare correlazioni con colonne in altre tabelle e creare calcoli più interessanti. Ad esempio, è possibile creare formule che sommano i valori per una tabella correlata e quindi salvare tale valore in una singola cella. In alternativa, per controllare le righe della tabella correlata, è possibile applicare filtri a tabelle e colonne. Per altre informazioni, vedere Relazioni tra tabelle in un modello di dati.
Poiché è possibile collegare le tabelle mediante relazioni, le tabelle pivot possono includere anche dati provenienti da più colonne di tabelle diverse.
Tuttavia, poiché le formule possono funzionare con intere tabelle e colonne, è necessario progettare i calcoli in modo diverso rispetto a Excel.
-
In generale, una formula DAX in una colonna viene sempre applicata all'intero set di valori nella colonna (mai a poche righe o celle).
-
Le tabelle in Power Pivot devono avere sempre lo stesso numero di colonne in ogni riga e tutte le righe di una colonna devono contenere lo stesso tipo di dati.
-
Quando le tabelle sono connesse da una relazione, è previsto che le due colonne usate come chiavi abbiano valori corrispondenti, nella maggior parte dei casi. Poiché Power Pivot non applica l'integrità referenziale, è possibile che in una colonna chiave siano presenti valori non corrispondenti e che venga comunque creata una relazione. La presenza di valori vuoti o non corrispondenti può tuttavia influire sui risultati delle formule e sull'aspetto delle tabelle pivot. Per altre informazioni, vedere Ricerche nelle formule di Power Pivot.
-
Quando si collegano tabelle usando relazioni, si ingrandisce l'ambito o iltesto in cui vengono valutate le formule. Ad esempio, le formule di una tabella pivot possono essere influenzate da eventuali filtri o intestazioni di colonna e di riga nella tabella pivot. È possibile scrivere formule che modificano il contesto, ma il contesto può anche causare modifiche ai risultati in modi che potrebbero non essere anticipati. Per altre informazioni, vedere Contesto nelle formule DAX.
Aggiornamento dei risultati delle formule
La frequenza e il ricalcolo dei dati sono due operazioni separate ma correlate che è consigliabile comprendere quando si progetta un modello di dati contenente formule complesse, grandi quantità di dati o dati ottenuti da origini dati esterne.
L'aggiornamento dei dati è il processo di aggiornamento dei dati nella cartella di lavoro con nuovi dati da un'origine dati esterna. È possibile aggiornare manualmente i dati a intervalli specificati. In alternativa, se la cartella di lavoro è stata pubblicata in un sito di SharePoint, è possibile pianificare un aggiornamento automatico da origini esterne.
Il ricalcolo è il processo di aggiornamento dei risultati delle formule per riflettere le modifiche apportate alle formule stesse e per riflettere tali modifiche nei dati sottostanti. Il ricalcolo può influire sulle prestazioni nei modi seguenti:
-
Per una colonna calcolata, il risultato della formula deve essere sempre ricalcolato per l'intera colonna ogni volta che si modifica la formula.
-
Per una misura, i risultati di una formula non vengono calcolati finché la misura non viene inserita nel contesto della tabella pivot o del grafico pivot. La formula verrà ricalcolata anche quando si modifica un'intestazione di riga o di colonna che influisce sui filtri sui dati o quando si aggiorna manualmente la tabella pivot.
Risoluzione dei problemi relativi alle formule
Errori durante la scrittura delle formule
Se viene visualizzato un errore durante la definizione di una formula, la formula potrebbe contenere un errore di sintassi, un errore semantico o un errore di calcolo.
Gli errori di sintassi sono i più semplici da risolvere. In genere includono una parentesi o una virgola mancante. Per informazioni sulla sintassi delle singole funzioni, vedere Riferimento alla funzione DAX.
L'altro tipo di errore si verifica quando la sintassi è corretta, ma il valore o la colonna a cui viene fatto riferimento non ha senso nel contesto della formula. Tali errori semantici e di calcolo potrebbero essere causati da uno dei seguenti problemi:
-
La formula fa riferimento a una colonna, una tabella o una funzione non esistente.
-
La formula sembra corretta, ma quando il motore dei dati recupera i dati, trova un tipo non corrispondente e genera un errore.
-
La formula passa un numero o un tipo di parametri non corretto a una funzione.
-
La formula fa riferimento a un'altra colonna contenente un errore e pertanto i relativi valori non sono validi.
-
La formula fa riferimento a una colonna che non è stata elaborata, ovvero contiene metadati ma non dati effettivi da usare per i calcoli.
Nei primi quattro casi, DAX contrassegna l'intera colonna che contiene la formula non valida. Nell'ultimo caso, DAX disattiva la colonna per indicare che la colonna è in uno stato non elaborato.
Risultati non corretti o insoliti durante la classificazione o l'ordinamento di valori di colonna
Quando si classifica o si ordina una colonna che contiene il valore NaN (non un numero), è possibile che si verifichino risultati sbagliati o imprevisti. Ad esempio, quando un calcolo divide 0 per 0, viene restituito un risultato NN.
Questo perché il motore delle formule esegue l'ordinamento e la classificazione confrontando i valori numerici; tuttavia, non è possibile confrontare NaN con altri numeri nella colonna.
Per assicurare risultati corretti, è possibile usare istruzioni condizionali usando la funzione SE per testare i valori NaN e restituire un valore numerico 0.
Compatibilità con i modelli tabulari di Analysis Services e la modalità DirectQuery
In generale, le formule DAX compilate in Power Pivot sono completamente compatibili con i modelli tabulari di Analysis Services. Tuttavia, se si esegue la migrazione del modello di Power Pivot in un'istanza di Analysis Services e quindi si distribuisce il modello in modalità DirectQuery, esistono alcune limitazioni.
-
Alcune formule DAX possono restituire risultati diversi se si distribuisce il modello in modalità DirectQuery.
-
Alcune formule potrebbero causare errori di convalida quando si distribuisce il modello in modalità DirectQuery, perché contiene una funzione DAX non supportata rispetto a un'origine dati relazionale.
Per altre informazioni, vedere la documentazione relativa alla modellazione tabulare di Analysis Services in SQL Server 2012 BooksOnline.