Data Analysis Expressions (DAX) in PowerPivot

Data Analysis Expressions (DAX) in PowerPivot

Nota: Riteniamo importante fornire il contenuto della Guida più recente non appena possibile, nella lingua dell'utente. Questa pagina è stata tradotta automaticamente e potrebbe contenere errori di grammatica o imprecisioni. L'intento è quello di rendere fruibile il contenuto. Nella parte inferiore della pagina è possibile indicare se le informazioni sono risultate utili. Questo è l'articolo in lingua inglese per riferimento.

Le espressioni di analisi dati (DAX) sembrano un po' intimidatorie all'inizio, ma non fatevi ingannare dal nome. Le nozioni di base su DAX sono molto facili da capire. First Things First-DAX non è un linguaggio di programmazione. DAX è un linguaggio delle formule. Puoi usare DAX per definire calcoli personalizzati per le colonne calcolate e per le misure (note anche come campi calcolati). DAX include alcune delle funzioni usate nelle formule di Excel e funzioni aggiuntive progettate per interagire con i dati relazionali ed eseguire l'aggregazione dinamica.

Informazioni sulle formule DAX

Le formule DAX sono molto simili alle formule di Excel. Per crearne una, si digita un segno di uguale, seguito da un nome di funzione o da un'espressione e dai valori o dagli argomenti necessari. Analogamente a Excel, DAX offre numerose funzioni che è possibile utilizzare per lavorare con le stringhe, eseguire calcoli con date e ore o creare valori condizionali.

Tuttavia, le formule DAX presentano le seguenti importanti differenze:

  • Se si desidera personalizzare i calcoli per ogni singola riga, in DAX sono disponibili funzioni che consentono di utilizzare il valore della riga corrente o un valore correlato per eseguire calcoli che variano in base al contesto.

  • In DAX è incluso un tipo di funzione che restituisce una tabella come relativo risultato anziché un singolo valore. Queste funzioni possono essere utilizzate per fornire input ad altre funzioni.

  • Le funzionidi intelligence temporale in DAX consentono di eseguire calcoli usando intervalli di date e di confrontare i risultati tra i periodi paralleli.

Posizione in cui utilizzare le formule DAX

È possibile creare formule in PowerPivot in cColumns calcolato o in ields f calcolato.

Colonne calcolate

Una colonna calcolata è una colonna che si aggiunge a una tabella di PowerPivot esistente. Invece di incollare o importare i valori nella colonna, viene creata una formula DAX che definisce i valori della colonna. Se si include la tabella di PowerPivot in una tabella pivot o in un grafico pivot, la colonna calcolata può essere usata come qualsiasi altra colonna di dati.

Le formule nelle colonne calcolate sono molto simili a quelle create in Excel. A differenza di Excel tuttavia, non è possibile creare una formula diversa per le diverse righe di una tabella, infatti la formula DAX viene applicata automaticamente a tutta la colonna.

Se in una colonna è contenuta una formula, il valore viene calcolato per ogni riga. I risultati vengono calcolati per la colonna non appena si crea la formula. I valori della colonna vengono ricalcolati solo se vengono aggiornati i dati sottostanti o se viene utilizzato il ricalcolo manuale.

È possibile creare colonne calcolate basate su misure e altre colonne calcolate. Tuttavia, evita di usare lo stesso nome per una colonna calcolata e una misura, perché questo può portare a risultati confusi. Quando si fa riferimento a una colonna, è preferibile 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 in un grafico pivot) che usa i dati di PowerPivot. Le misure possono essere basate su funzioni di aggregazione standard, ad esempio COUNT o SUM oppure puoi definire una formula personalizzata usando DAX. Nell'area valori di una tabella pivot viene usata una misura. Se si vogliono inserire 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 di colonna, il risultato della 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 informazioni più dettagliate, vedere misure in Power Pivot.

Creazione di formule tramite la barra della formula

In PowerPivot, come in Excel, sono disponibili una barra della formula, tramite cui vengono semplificate la creazione e la modifica di formule, e la funzionalità di completamento automatico che consente di ridurre al minimo gli errori di digitazione e sintassi.

Per immettere il nome di una tabella   Cominciare a digitare il nome della tabella. In Completamento automatico formule è disponibile un elenco a discesa contenente nomi validi che iniziano con quelle lettere.

Per immettere il nome di una colonna   Digitare una parentesi quadra, quindi scegliere la colonna dall'elenco di colonne nella tabella corrente. Per una colonna di un'altra tabella, cominciare a digitare le prime lettere del nome della tabella, quindi scegliere la colonna dall'elenco a discesa di completamento automatico.

Per altri dettagli e una procedura guidata relativa alla modalità di compilazione di formule, vedere Creare formule per i calcoli in Power Pivot.

Suggerimenti sull'utilizzo di Completamento automatico

È possibile utilizzare Completamento automatico formule al centro di una formula esistente con funzioni annidate. Il testo immediatamente prima del punto di inserimento viene utilizzato per visualizzare i valori nell'elenco a discesa, mentre tutto il testo dopo il punto di inserimento rimane invariato.

I nomi definiti creati per le costanti non vengono visualizzati nell'elenco a discesa di completamento automatico, ma è comunque possibile digitarli.

PowerPivot non aggiunge la parentesi di chiusura delle funzioni né inserisce automaticamente le parentesi corrispondenti. È necessario assicurarsi che ogni funzione sia sintatticamente corretta, in caso contrario non sarà possibile salvare o usare la formula. 

Utilizzo di più funzioni in una formula

È possibile nidificare funzioni, pertanto è possibile utilizzare 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 più complessa la creazione di formule o la relativa risoluzione dei problemi.

Numerose funzioni DAX sono progettate per essere utilizzate esclusivamente come funzioni annidate. Tramite queste funzioni viene restituita una tabella, che non può essere salvata direttamente come risultato, ma deve essere fornita come input per una funzione di tabella. Ad esempio, per le funzioni SUMX, AVERAGEX e MINX è richiesta una tabella come primo argomento.

Nota: Alcuni limiti dell'annidamento delle funzioni sono disponibili all'interno delle misure, per garantire che le prestazioni non vengano influenzate dai numerosi calcoli necessari per le dipendenze tra le colonne.

Confronto tra funzioni DAX e funzioni di Excel

La libreria di funzioni DAX è basata sulla libreria di funzioni di Excel ma le libreria hanno numerose differenze. In questa sezione vengono riepilogate le differenze e le analogie tra funzioni di Excel e funzioni DAX.

  • Numerose funzioni DAX hanno lo stesso nome e lo stesso comportamento generale delle funzioni di Excel ma sono state modificate per accettare tipi di input diversi e, in alcuni casi, può essere restituito un tipo di dati diverso. In genere, non è possibile utilizzare funzioni DAX in una formula di Excel o utilizzare formule di Excel in PowerPivot senza apportare alcuna modifica.

  • Nelle funzioni DAX come riferimento non viene mai accettato un riferimento di cella o un intervallo, mentre viene accettata una colonna o una tabella.

  • Le funzioni di data e ora di DAX restituiscono un tipo di dati datetime. Le funzioni di data e ora di Excel restituiscono invece un valore intero che rappresenta una data come numero di serie.

  • Molte delle nuove funzioni DAX restituiscono una tabella di valori o consentono di eseguire calcoli basati su una tabella di valori utilizzata come input. In Excel non vi sono invece funzioni che restituiscono una tabella ma alcune funzioni possono essere utilizzate le matrici. La possibilità di fare riferimento in modo semplice a colonne e tabelle complete è una nuova funzionalità di PowerPivot.

  • In DAX sono disponibili nuove funzioni di ricerca, simili alle funzioni di ricerca di matrici e vettori in Excel. Tuttavia per le funzioni DAX è necessario stabilire una relazione tra le tabelle.

  • È previsto che i dati in una colonna siano sempre dello stesso tipo. Se i dati non sono dello stesso tipo, tramite DAX l'intera colonna viene impostata sul tipo di dati che consente di adattare meglio tutti i valori.

Tipi di dati DAX

In un modello di dati PowerPivot è possibile importare dati provenienti da numerose origini dati diverse in grado di supportare tipi di dati differenti. Quando i dati vengono importati o caricati e usati in calcoli o in tabelle pivot, i dati vengono convertiti in uno dei tipi di dati di PowerPivot. Per un elenco dei tipi di dati, vedere Tipi di dati nei modelli di dati.

Il tipo di dati table è un nuovo tipo di dati DAX usato come input o output in molte funzioni nuove. Ad esempio, la funzione FILTER accetta una tabella come input e restituisce un'altra tabella che contiene solo le righe che soddisfano le condizioni di filtro. Combinando le funzioni delle tabelle con le funzioni di aggregazione, è possibile eseguire calcoli complessi in set di dati definiti in modo dinamico. Per altre informazioni, vedere Aggregazioni in Power Pivot.

Formule e modello relazionale

La finestra di PowerPivot è 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 per le relazioni, che consentono di creare correlazioni con colonne in altre tabelle e di creare calcoli più interessanti. Ad esempio, puoi creare formule che sommano valori per una tabella correlata e quindi Salva il 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.

Dal momento che è possibile collegare tabelle tramite relazioni, nelle tabelle pivot possono essere inclusi anche dati da più colonne provenienti da tabelle diverse.

Tuttavia, dal momento che le formule possono essere utilizzate con intere tabelle e colonne, è necessario progettare i calcoli in modo diverso rispetto a come vengono progettati in Excel.

  • In genere, una formula DAX in una colonna viene applicata sempre all'intero set di valori nella colonna (e mai solo ad alcune righe o celle).

  • Le tabelle PowerPivot devono avere sempre lo stesso numero di colonne in ogni riga e in tutte le righe di una colonna deve essere contenuto lo stesso tipo di dati.

  • Quando le tabelle sono connesse tramite una relazione, è necessario assicurarsi che le due colonne utilizzate come chiavi dispongano di valori che siano per la maggior parte corrispondenti. Poiché PowerPivot non impone l'integrità referenziale, è possibile che in una colonna chiave siano presenti valori non corrispondenti e che si possa comunque creare una relazione. Tuttavia, la presenza di valori vuoti o non corrispondenti potrebbe 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 tramite relazioni, è possibile ingrandire l'ambito o iltesto in cin cui vengono valutate le formule. Ad esempio, le formule in una tabella pivot possono essere interessate da eventuali filtri o intestazioni di colonna e di riga nella tabella pivot. Puoi scrivere formule che modificano il contesto, ma il contesto può anche causare la modifica dei risultati in modi che potresti non prevedere. Per altre informazioni, Vedi contesto nelle formule DAX.

Aggiornamento dei risultati delle formule

Dati r efresh e ricalcolo sono due operazioni separate ma correlate che è necessario comprendere quando si progetta un modello di dati che contiene 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 i nuovi dati provenienti da un'origine dati esterna. È possibile aggiornare i dati manualmente a intervalli specifici. Oppure, se la cartella di lavoro è stata pubblicata in un sito di SharePoint, è possibile pianificare un aggiornamento automatico dalle origini esterne.

Il ricalcolo è il processo di aggiornamento dei risultati delle formule in modo che riflettano qualsiasi modifica alle formule stesse e tali modifiche nei dati sottostanti. Il ricalcolo può avere effetto sulle prestazioni nei modi seguenti:

  • Per una colonna calcolata, è consigliabile sempre ricalcolare il risultato della formula per la colonna intera ogni volta che la formula viene modificata.

  • Per una misura, i risultati di una formula non vengono calcolati fino a quando la misura non viene inserita nel contesto della tabella pivot o del grafico pivot. La formula verrà ricalcolata anche quando si modifica qualsiasi intestazione di riga o di colonna che influisce sui filtri dei dati o quando si aggiorna manualmente la tabella pivot.

Risoluzione dei problemi relativi alle formule

Errori di scrittura delle formule

Se si riceve un errore quando si definisce una formula, questa potrebbe contenere un errore sintattico, un errore semantico o un errore di calcolo.

Gli errori sintattici sono i più facili da risolvere. In genere sono dovuti a una parentesi o una virgola mancante. Per informazioni sulla sintassi delle singole funzioni, vedere Riferimento alle funzioni DAX.

L'altro tipo di errore si verifica quando la sintassi è corretta, ma il valore o la colonna a cui si fa riferimento non è appropriato nel contesto della formula. Tali errori semantici e di calcolo potrebbero essere causati da uno qualsiasi dei problemi seguenti:

  • La formula fa riferimento a una colonna, una tabella o una funzione non esistente.

  • La formula sembra essere corretta, ma quando il motore di dati recupera i dati, viene rilevato un tipo non corrispondente e viene quindi generato un errore.

  • La formula passa a una funzione un numero o un tipo di parametro errato.

  • La formula fa riferimento a una colonna diversa che contiene un errore e pertanto i valori non sono validi.

  • La formula fa riferimento a una colonna che non è stata elaborata, a indicare che contiene metadati ma nessun dato effettivo da usare per i calcoli.

Nei primi quattro casi, tramite DAX viene contrassegnata l'intera colonna in cui è contenuta la formula non valida. Nell'ultimo caso, tramite DAX la colonna che si trova in uno stato non elaborato viene visualizzata in grigio.

Risultati non corretti o insoliti durante la classificazione o l'ordinamento di valori delle colonne

Quando si classificano o si ordinano colonne contenenti valori NaN (non un numero), potrebbero essere restituiti risultati errati o imprevisti. Ad esempio quando un calcolo divide 0 per 0, viene restituito un risultato NaN.

Ciò è dovuto al fatto che il motore di formule esegue l'ordinamento e la classificazione confrontando i valori numerici, mentre non si può confrontare NaN con altri numeri nella colonna.

Per assicurare risultati corretti, è possibile usare istruzioni condizionali tramite la funzione SE per testare i valori NaN e restituire un valore numerico 0.

Compatibilità con modelli tabulari di Analysis Services e modalità DirectQuery

In generale, le formule DAX compilate in PowerPivot sono completamente compatibili con i modelli tabulari di Analysis Services. Tuttavia, se si esegue la migrazione del modello PowerPivot in uso in un'istanza di Analysis Services e, successivamente, il modello viene distribuito in modalità DirectQuery, esistono alcune limitazioni.

  • È possibile che tramite alcune formule DAX vengano restituiti risultati diversi se si distribuisce il modello in modalità DirectQuery.

  • Alcune formule possono causare errori di convalida se si distribuisce il modello in modalità DirectQuery, in quanto nella formula è contenuta una funzione DAX non supportata in un'origine dati relazionale.

Per ulteriori informazioni, vedere la documentazione relativa alla modellazione tabulare di Analysis Services nella documentazione online di SQL Server 2012.

Amplia le tue competenze su Office
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×