Usare le funzioni DAX

Completato

La libreria di funzioni DAX è costituita da centinaia di funzioni, ciascuna progettata per un obiettivo specifico.

Poiché DAX ha avuto origine con il componente aggiuntivo Power Pivot per Microsoft Excel 2010, sono disponibili oltre 80 funzioni che è possibile trovare anche in Excel. Questa è stata una strategia di progettazione intenzionale di Microsoft, volta a garantire che gli utenti di Excel possano diventare rapidamente produttivi con DAX.

Ci sono tuttavia molte funzioni che non sono disponibili in Excel, perché sono specifiche della modellazione dei dati:

  • Operatore di navigazione di relazioni
  • Funzioni di modifica del contesto di filtro
  • Funzioni di iterazione
  • Funzioni di Business Intelligence per le gerarchie temporali
  • Funzioni di percorso

Suggerimento

Per cercare la documentazione relativa a una funzione DAX, in una ricerca Web immettere la parola chiave DAX seguita dal nome della funzione.

Per altre informazioni, vedere Informazioni di riferimento sulle funzioni DAX.

Funzioni provenienti da Excel

Le sezioni seguenti illustrano diverse funzioni utili con cui si potrebbe già avere familiarità in quanto sono disponibili in Excel.

La funzione DAX IF verifica se una condizione fornita come primo argomento viene soddisfatta. Restituisce un valore se la condizione è TRUE e un altro valore se la condizione è FALSE. La sintassi della funzione è la seguente:

IF(<logical_test>, <value_if_true>[, <value_if_false>])

Suggerimento

Un argomento della funzione è facoltativo se nella documentazione è racchiuso tra parentesi quadre.

Se logical_test restituisce FALSE e value_if_false non viene specificato, la funzione restituisce BLANK.

Sono disponibili molte funzioni di riepilogo di Excel, tra cui SUM, COUNT, AVERAGE, MIN, MAX e molte altre. L'unica differenza è che in DAX si passa un riferimento di colonna, mentre in Excel si passa un intervallo di celle.

Sono disponibili anche molte funzioni matematiche, di testo, di data e ora, di informazioni e logiche di Excel. Tra le funzioni di Excel disponibili in DAX vi sono ad esempio ABS, ROUND, SQRT, LEN, LEFT, RIGHT, UPPER, DATE, YEAR, MONTH, NOW, ISNUMBER, TRUE, FALSE, AND, OR, NOT e IFERROR.

Funzioni non provenienti da Excel

Due funzioni DAX utili che non sono specifiche della modellazione e che non provengono da Excel sono DISTINCTCOUNT e DIVIDE.

Funzione DISTINCTCOUNT

È possibile usare la funzione DAX DISTINCTCOUNT per contare il numero di valori distinti in una colonna. Questa funzione è particolarmente utile in una soluzione di analisi. Tenere presente che il numero di clienti è diverso dal numero di clienti distinti. Il secondo non include i clienti che ripetono un acquisto, quindi la differenza è la stessa che c'è tra chiedere "Quanti clienti" e "Quanti clienti diversi".

Funzione DIVIDE

È possibile usare la funzione DAX DIVIDE per ottenere la divisione. È necessario passare le espressioni di numeratore e denominatore. Facoltativamente, è possibile passare un valore che rappresenta un risultato alternativo. La sintassi della funzione DIVIDE è:

DIVIDE(<numerator>, <denominator>[, <alternate_result>])

La funzione DIVIDE gestisce automaticamente i casi di divisione per zero. Se non viene passato un risultato alternativo e il denominatore è zero o BLANK, la funzione restituisce BLANK. Quando viene passato un risultato alternativo, questo viene restituito al posto di BLANK.

Questa funzione è comoda perché evita la necessità che l'espressione controlli in anticipo il valore del denominatore. La funzione è inoltre ottimizzata meglio per la verifica del valore del denominatore rispetto alla funzione IF. Il vantaggio in termini di prestazioni è significativo perché il controllo della divisione per zero è costoso. La funzione DIVIDE consente inoltre di creare un'espressione più concisa ed elegante.

Suggerimento

È consigliabile usare la funzione DIVIDE ogni volta che il denominatore è un'espressione che può restituire zero o BLANK. Nel caso in cui il denominatore sia un valore costante, è consigliabile usare l'operatore di divisione (/), presentato più avanti in questo modulo. In questo caso, la riuscita della divisione è garantita e l'espressione offrirà prestazioni migliori perché vengono evitate verifiche non necessarie.