Objectius d'aprenentatge
- Comprendre què és una variable en DAX.
- Crear variables mitjançant la instrucció
VAR. - Utilitzar variables dins d'una mesura.
- Millorar la llegibilitat de les expressions DAX.
- Utilitzar variables per depurar i validar càlculs.
Una variable és un espai temporal on podem emmagatzemar un valor o el resultat d'un càlcul per reutilitzar-lo posteriorment dins de la mateixa expressió DAX.
Les variables permeten:
- Fer el codi més fàcil de llegir.
- Evitar repetir càlculs.
- Millorar el rendiment.
- Facilitar la detecció d'errors.
L'estructura és sempre la mateixa: primer es defineixen les variables amb VAR, i al final s'indica el resultat amb RETURN.
NomMesura = VAR NomVariable1 = valor_o_càlcul VAR NomVariable2 = valor_o_càlcul RETURN resultat_final
| Element | Descripció | Color en el codi |
|---|---|---|
| VAR | Defineix una variable | Blau |
| NomVariable | Nom assignat a la variable | Vermell |
| = | Assignació de valor | Cian |
| RETURN | Resultat que retornarà la mesura | Verd |
1Variables = VAR __primera = 3 VAR __segona = 2 RETURN __segona * __primera
VAR __primera = 3
VAR __segona = 2
RETURN 2 * 3
Cada VAR crea una "caixa" etiquetada amb el nom de la variable. Les caixes existeixen durant l'execució de la mesura i s'alliberen quan RETURN retorna el resultat.
Exemple = VAR Pomes = 4 VAR Peres = 3 RETURN Pomes + Peres
Una variable pot fer referència a variables definides anteriorment. L'ordre importa: només pots usar una variable que ja s'ha definit.
Exemple = VAR __a = 10 VAR __b = __a + 5 -- usa __a, ja definida VAR __c = __b * 2 -- usa __b, ja definida RETURN __c
Calcular el marge de benefici és el cas ideal per veure com les variables desglossen un càlcul complex en parts comprensibles.
Marge = VAR Vendes = SUM( Vendes[Import] ) VAR Costos = SUM( Vendes[Cost] ) VAR Benefici = Vendes - Costos RETURN DIVIDE( Benefici, Vendes )
| Concepte | Valor |
|---|---|
| Vendes | 1.000 € |
| Costos | 700 € |
| Benefici | 300 € |
| Marge (RETURN) | 30% |
300 / 1.000 = 0,30 → 30%
7.1 · Millora de la llegibilitat
Benefici = SUM( Vendes[Import] ) - SUM( Vendes[Cost] )
Benefici = VAR Vendes = SUM( Vendes[Import] ) VAR Costos = SUM( Vendes[Cost] ) RETURN Vendes - Costos
7.2 · Evitar repetir càlculs
Marge = DIVIDE( SUM( Vendes[Import] ) - SUM( Vendes[Cost] ), SUM( Vendes[Import] ) -- repetit! )
Marge = VAR Vendes = SUM( Vendes[Import] ) VAR Costos = SUM( Vendes[Cost] ) VAR Benefici = Vendes - Costos RETURN DIVIDE( Benefici, Vendes )
Una de les utilitats més potents: substituir temporalment el RETURN per mostrar el valor d'una variable intermèdia i verificar que el càlcul és correcte.
Debugging pas a pas
Fes clic a una variable per veure quin RETURN usaries per depurar-la.
Suposem que la mesura Descompte no retorna el valor esperat. Procedim a inspeccionar cada variable per localitzar l'error.
Descompte = VAR Import = SUM( Vendes[Import] ) VAR Percentatge = 0.15 VAR Total = Import * Percentatge RETURN Total
RETURN Import
RETURN Percentatge
RETURN Total
RETURN per una variable intermèdia no canvia el model de dades: és una operació completament segura.
📖 Noms descriptius
Usa noms que expliquin el contingut. El codi s'ha de llegir com un text.
-- ✓ Correcte VAR TotalVendes = SUM(...) -- ✗ Evitar VAR X = SUM(...)
🔗 Ordre de dependència
Declara primer les variables independents, després les que en depenen.
VAR Vendes = ... VAR Costos = ... VAR Benefici = Vendes - Costos VAR Marge = DIVIDE(...)
⬇️ Tot abans del RETURN
Declara totes les variables abans del RETURN. Ha de ser sempre l'última línia.
VAR A = ... VAR B = ... VAR C = ... RETURN C -- sempre al final
