Excel DAX - Operatori
DAX è un linguaggio delle formule composto da funzioni, operatori e valori che possono essere usati in una formula o espressione per calcolare e restituire uno o più valori.
Puoi usare DAX operatorsper confrontare valori, eseguire calcoli aritmetici e concatenare stringhe. In questo capitolo imparerai a conoscere gli operatori DAX e come usarli.
Tipi di operatori DAX
DAX supporta i seguenti tipi di operatori:
- Operatori aritmetici DAX
- Operatori di confronto DAX
- Operatore di concatenazione del testo DAX
- Operatori logici DAX
Ordine di precedenza dell'operatore DAX
Puoi avere una formula DAX con molti operatori DAX che combinano diversi valori o espressioni. In tal caso, il risultato finale dipenderà dall'ordine in cui vengono eseguite le operazioni. DAX fornisce l'ordine di precedenza predefinito degli operatori e anche modi per eseguire l'override dell'ordine di precedenza predefinito.
La precedenza degli operatori predefiniti DAX è elencata nella tabella seguente.
Ordine di precedenza | Operatore (i) | Operazione |
---|---|---|
1 | ^ | Esponenziazione |
2 | - | Cartello |
3 | * e / | Moltiplicazione e divisione |
4 | ! | NON |
5 | + e - | Addizione e sottrazione |
6 | & | Concatenazione |
7 | =, <,>, <=,> = e <> | Uguale a, Minore di, Maggiore di, Minore o uguale a, Maggiore o uguale a e Non uguale a |
Sintassi dell'espressione DAX
È necessario prima comprendere la sintassi dell'espressione DAX e come viene eseguita la valutazione dell'espressione con gli operandi e gli operatori.
Tutte le espressioni iniziano sempre con un segno di uguale (=). Il segno di uguale indica che i caratteri successivi costituiscono un'espressione.
A destra del segno di uguale, avrai gli operandi collegati dagli operatori DAX. Ad esempio, = 5 + 4> 5.
= 5 * 6 - 3.
Le espressioni vengono sempre lette da sinistra a destra e i calcoli vengono eseguiti in quella sequenza, in base alla precedenza dell'operatore DAX fornita nella sezione precedente.
Se gli operatori DAX hanno lo stesso valore di precedenza, vengono valutati da sinistra a destra. Ad esempio, = 5 * 6/10. Entrambi * e / hanno lo stesso ordine precedente. Quindi, l'espressione viene valutata come 30/10 = 3.
Se gli operatori DAX nell'espressione hanno valori di precedenza diversi, vengono valutati nell'ordine di precedenza da sinistra a destra.
= 5 + 4> 7. La precedenza predefinita è + primo e> successivo. Quindi, l'espressione viene calcolata da sinistra a destra. - 5 + 4 viene calcolato prima risultando in 9 e poi 9> 5 viene valutato che risulta in TRUE.
= 5 * 6 - 3. La precedenza predefinita è * prima e - successiva. Quindi, l'espressione viene calcolata da sinistra a destra. - 5 * 6 viene calcolato prima risultante in 30 e poi 30 - 3 viene calcolato che risulta in 27.
= 2 * 5 - 6 * 3. La precedenza predefinita è * first, * next e poi -. Quindi, l'espressione valuta come 10-18 e quindi come -8. Nota che non è 10 - 6 risultante in 4 e quindi 4 * 3 che è 12.
Utilizzo delle parentesi per controllare l'ordine di calcolo DAX
È possibile modificare l'ordine di precedenza degli operatori predefinito DAX utilizzando le parentesi, raggruppando gli operandi e gli operatori per controllare la sequenza di calcolo.
Ad esempio, = 5 * 6 - 3 restituisce 27 con l'ordine di precedenza dell'operatore predefinito DAX. Se si utilizzano le parentesi per raggruppare gli operandi e gli operatori come = 5 * (6 - 3), viene calcolato prima 6 - 3 risultante in 3 e poi viene calcolato 5 * 3 che risulta in 15.
= 2 * 5-6 * 3 restituisce -8 con l'ordine di precedenza dell'operatore predefinito DAX. Se usi le parentesi per raggruppare gli operandi e gli operatori come = 2 * (5 - 6) * 3, allora 5 - 6 viene calcolato prima risultando -1 e poi 2 * (-1) * 3 viene calcolato che risulta in -6 .
Come puoi vedere, con gli stessi operandi e operatori, sono possibili risultati diversi dal modo in cui vengono raggruppati. Pertanto, quando si usano gli operatori DAX nelle formule DAX, è necessario prestare attenzione a come deve essere la sequenza di calcolo.
Differenze tra Excel e DAX
Sebbene DAX abbia somiglianze con le formule di Excel, esistono alcune differenze significative tra i due.
DAX è più potente di Excel grazie al motore di calcolo residente nella memoria sottostante.
DAX supporta più tipi di dati rispetto a Excel.
DAX fornisce funzionalità avanzate aggiuntive di un database relazionale, Data Model, incluso un supporto più completo per i tipi di data e ora.
In alcuni casi, i risultati dei calcoli o il comportamento delle funzioni in DAX potrebbero non essere gli stessi di Excel. Ciò è dovuto alle differenze di seguito:
- Cast del tipo di dati
- Tipi di dati
Differenza nella trasmissione del tipo di dati
In DAX, quando si dispone di un'espressione = valore1 operatore valore2, i due operandi valore1 e valore2 devono essere dello stesso tipo di dati. Se i tipi di dati sono diversi, DAX li convertirà prima in un tipo di dati comune in modo implicito. Fare riferimento al capitolo - Sintassi DAX per i dettagli.
Ad esempio, devi confrontare due operandi di diversi tipi di dati, ad esempio un numero risultante da una formula, come = [Importo] * 0,08 e un numero intero. Il primo numero può essere un numero decimale con molte cifre decimali, mentre il secondo numero è un numero intero. Quindi DAX lo gestisce come segue:
Innanzitutto, DAX convertirà entrambi gli operandi in numeri reali utilizzando il formato numerico più grande in grado di memorizzare entrambi i tipi di numeri.
Successivamente, DAX confronterà i due numeri reali.
Al contrario, Excel tenta di confrontare i valori di diversi tipi di dati senza prima forzarli a un tipo di dati comune. Per questo motivo, potresti trovare risultati diversi in DAX e in Excel per la stessa espressione di confronto.
Differenza nei tipi di dati
L'ordine di precedenza degli operatori in DAX ed Excel è lo stesso. Tuttavia, la percentuale dell'operatore (%) e gli intervalli di dati supportati da Excel non sono supportati da DAX. Inoltre, DAX supporta la tabella come tipo di dati, il che non è il caso di Excel.
Inoltre, nelle formule di Excel, puoi fare riferimento a una singola cella, a una matrice oa un intervallo di celle. Nelle formule DAX non è possibile fare riferimento a nessuno di questi. I riferimenti della formula DAX ai dati devono essere tabelle, colonne, campi calcolati e colonne calcolate.
Se si copiano le formule da Excel e le si incolla in DAX, verificare la correttezza della formula DAX poiché la sintassi DAX è diversa dalla sintassi della formula di Excel. Inoltre, anche se una funzione ha lo stesso nome in DAX ed Excel, i suoi parametri potrebbero essere diversi e anche il risultato della funzione potrebbe essere diverso.
Imparerai di più su tutto ciò nei capitoli successivi.