Ramon Barrull

Variables en DAX · VAR / RETURN

Unitat de formació · Power BI / DAX · Ramon Barrull

Power BI · DAX

VAR & RETURN

Variables en DAX: com escriure mesures més clares, evitar repeticions i depurar càlculs pas a pas.

11 seccions Exemples reals Debugging interactiu Bones pràctiques
Tornar a l'índex

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.
1
Què és una variable?

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.

📦 Pensa en una variable com una caixa etiquetada: guardes informació temporalment, li poses un nom i la pots recuperar quan la necessitis dins la mateixa mesura.

Les variables permeten:

  • Fer el codi més fàcil de llegir.
  • Evitar repetir càlculs.
  • Millorar el rendiment.
  • Facilitar la detecció d'errors.

2
Sintaxi de les variables

L'estructura és sempre la mateixa: primer es defineixen les variables amb VAR, i al final s'indica el resultat amb RETURN.

DAX
NomMesura =
VAR NomVariable1 = valor_o_càlcul
VAR NomVariable2 = valor_o_càlcul
RETURN resultat_final
ElementDescripcióColor en el codi
VARDefineix una variableBlau
NomVariableNom assignat a la variableVermell
=Assignació de valorCian
RETURNResultat que retornarà la mesuraVerd

3
Primer exemple
DAX
1Variables =
VAR __primera = 3
VAR __segona  = 2
RETURN __segona * __primera
1
S'assigna la primera variable
VAR __primera = 3
2
S'assigna la segona variable
VAR __segona = 2
3
Es calcula el RETURN
RETURN 2 * 3
Resultat final
= 6

4
Les variables com a caixes

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.

DAX
Exemple =
VAR Pomes = 4
VAR Peres = 3
RETURN Pomes + Peres
Visualització de les variables en memòria
VAR
Pomes
4
VAR
Peres
3
RETURN
Pomes + Peres
7

5
Variables dependents

Una variable pot fer referència a variables definides anteriorment. L'ordre importa: només pots usar una variable que ja s'ha definit.

DAX
Exemple =
VAR __a = 10
VAR __b = __a + 5   -- usa __a, ja definida
VAR __c = __b * 2   -- usa __b, ja definida
RETURN __c
VAR __a = 10→ 10
VAR __b = __a + 510 + 5 → 15
VAR __c = __b * 215 × 2 → 30
RETURN __c= 30

6
Exemple real de negoci

Calcular el marge de benefici és el cas ideal per veure com les variables desglossen un càlcul complex en parts comprensibles.

DAX
Marge =
VAR Vendes   = SUM( Vendes[Import] )
VAR Costos   = SUM( Vendes[Cost] )
VAR Benefici = Vendes - Costos
RETURN
    DIVIDE( Benefici, Vendes )
ConcepteValor
Vendes1.000 €
Costos700 €
Benefici300 €
Marge (RETURN)30%

300 / 1.000 = 0,30 → 30%


7
Avantatges de les variables

7.1 · Millora de la llegibilitat

✗ Sense variables
Benefici =
SUM( Vendes[Import] )
-
SUM( Vendes[Cost] )
✗ Difícil d'entendre a primer cop d'ull
✓ Amb variables
Benefici =
VAR Vendes = SUM( Vendes[Import] )
VAR Costos = SUM( Vendes[Cost] )
RETURN Vendes - Costos
✓ Es llegeix com una oració

7.2 · Evitar repetir càlculs

✗ SUM repetit dues vegades
Marge =
DIVIDE(
    SUM( Vendes[Import] ) - SUM( Vendes[Cost] ),
    SUM( Vendes[Import] )  -- repetit!
)
✗ SUM(Vendes[Import]) es calcula dues vegades
✓ Calculat una sola vegada
Marge =
VAR Vendes   = SUM( Vendes[Import] )
VAR Costos   = SUM( Vendes[Cost] )
VAR Benefici = Vendes - Costos
RETURN DIVIDE( Benefici, Vendes )
✓ Clar, eficient i fàcil de mantenir

8
Variables per depurar (Debugging)

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.

Interactiu

Debugging pas a pas

Fes clic a una variable per veure quin RETURN usaries per depurar-la.

Mesura de depuració
← Selecciona una variable per veure el codi de depuració

9
Cas pràctic de debugging

Suposem que la mesura Descompte no retorna el valor esperat. Procedim a inspeccionar cada variable per localitzar l'error.

DAX — Mesura original
Descompte =
VAR Import      = SUM( Vendes[Import] )
VAR Percentatge = 0.15
VAR Total       = Import * Percentatge
RETURN
    Total
1
Comprovem l'import
RETURN Import
5.000 € ✓
2
Comprovem el percentatge
RETURN Percentatge
0,15 ✓
3
Comprovem el total
RETURN Total
750 € ✓
💡 Substituir el RETURN per una variable intermèdia no canvia el model de dades: és una operació completament segura.

10
Bones pràctiques

📖 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

Resum

Variables en DAX: el que has après

📖Milloren la llegibilitat: el codi s'entén d'un cop d'ull.
Eviten repetir càlculs i milloren el rendiment.
🔧Faciliten el manteniment: canviar un valor en un sol lloc.
🐛Simplifiquen la depuració: pots inspeccionar cada pas.

Regla fàcil de recordar

VAR
Guarda un valor
RETURN
Retorna el resultat
"Primer preparo els càlculs amb VAR i després decideixo què vull mostrar amb RETURN."