referencia rápida · Power BI para finanzas

las 10 funciones DAX que más vas a usar.

mentorBI finanzas
agregación iteradora matemática filtro y contexto tiempo lógica FONDO GRIS = sintaxis· FONDO DE COLOR = ejemplo 
SUM AGREGACIÓN · DEVUELVE UN VALOR 01
Suma los valores visibles de una única columna del modelo
SUM ( Tabla[Columna] )
Ud vendidas =
SUM ( factPedidos[Ud] )
· no admite expresiones (Ud × precio) ni recorre filas. Sin filas visibles devuelve BLANK, no 0
truco · es muy rápida y la medida base ideal para reutilizar en otras.
MAX / MIN AGREGACIÓN · DEVUELVE UN VALOR 02
El mayor o menor valor visible de una columna
MAX ( Tabla[Columna] ) · MAX ( expr1, expr2 )
Último día con pedidos =
MAX ( factPedidos[FechaPedido] )
· ignora BLANK y no itera. Para máx de una expresión fila a fila, usa MAXX
truco · guarda MAX ( dimFechas[Fecha] ) en VAR y úsala en acumulados
SUMX ITERADORA · DEVUELVE UN VALOR 03
Recorre (itera) la tabla fila a fila (contexto de fila) y suma. Mismo patrón que AVERAGEX, MAXX, MINX, etc.
SUMX ( Tabla, Expresión )
Ventas =
SUMX (
   factPedidos,
   factPedidos[Ud] * factPedidos[precioVentaUd]
)
· dentro de la iteración evita poner IF o DIVIDE
truco · si es posible,  tabla con pocos valores distintos (poca cardinalidad): usa VALUES(tabla[Columna])
DIVIDE MATEMÁTICA · DEVUELVE UN VALOR 04
División segura: controla el denominador 0 o BLANK
DIVIDE ( numerador, denominador, [alternativa] )
Ud por cliente =
DIVIDE (
   [Ud vendidas],
   DISTINCTCOUNT ( factPedidos[ID_cliente] )
)
· no usar dentro de una iteración (ejem. SUMX), usa el operador / para dividir, si no hay riesgo de 0 o BLANK en denominador
truco · no pongas BLANK() como 3er arg (ya es BLANK () por defecto)
CALCULATE CONTEXTO · DEVUELVE UN VALOR 05
Evalúa una expresión modificando el contexto de filtro
CALCULATE ( Expresión, filtro1, filtro2 … )
Ud 2025 =
CALCULATE (
   [Ud vendidas],
   dimFechas[Año] = 2025
)
· cada filtro sustituye al que hubiera en esa columna (prevalece)
truco · en 1er arg, pasa medidas base o expresiones calculables, NO variables (una variable contiene un valor fijo que no se calcula)
FILTER contexto · devuelve tabla 06
Devuelve solo las filas que cumplen la condición
FILTER ( Tabla estrecha, Condición )
Días laborables con pedidos =
COUNTROWS (
   FILTER (
     ALL ( factPedidos[FechaPedido] ),
     WEEKDAY ( factPedidos[FechaPedido], 2 ) <= 5 )
)
· nunca pases tabla entera: solo cols. de condiciones (usa ALL/VALUES).
truco · Si la condición no va fila a fila, mejor un filtro simple
ALL / ALLSELECTED CONTEXTO · MODIFICA CONTEXTO 07
Quitan filtros. Fuera de CALCULATE, devuelven tabla única
ALL ( Tabla | Columnas… ) · ALLSELECTED ( Tabla | Columnas… )
% sobre total =
DIVIDE (
   [Ud vendidas],
   CALCULATE (
      [Ud vendidas],
      ALLSELECTED ( dimFechas[Trimestre] )                             )
)
· ALL ignora todos los filtros. ALLSELECTED respeta los filtros externos)
truco · para acumulados con ALLSELECTED pásale (dimCalendario) entera
VALUES contexto · devuelve tabla 08
Valores distintos visibles de una columna, como tabla
VALUES ( Tabla[Columna] )
Clientes con pedidos =
COUNTROWS ( VALUES ( factPedidos[ID_cliente] ) )
· puede añadir una fila BLANK si hay claves huérfanas en hechos
truco · es la tabla estrecha ideal para FILTER
DATEADD tiempo · devuelve tabla 09
Fechas del contexto desplazadas N intervalos
DATEADD ( dimCalendario[Fecha], n, intervalo )
Ud año anterior =
CALCULATE (
   [Ud vendidas],
   DATEADD ( dimFechas[Fecha], -1, YEAR )
)
· se usa dentro de CALCULATE
truco · con periodos incompletos, devuelve mismo tramo comparado
IF LÓGICA · DEVUELVE UN VALOR 10
No calcula: elige entre dos resultados según TRUE / FALSE
IF ( Condición, si_verdadero, [si_falso] )
Ud vendidas (solo si > 22) =
IF ( [Ud vendidas] > 22, [Ud vendidas] )
· Sin 3er arg devuelve BLANK(). No itera por sí sola. No devuelve tablas
truco · con tres ramas o más, SWITCH ( TRUE ( ), condición, valor, … ) se lee mucho mejor que IF anidados
VAR palabra clave + RETURN
Optimiza cálculos y hace el código más ordenado y entendible
1Se evalúa una sola vez, donde se declara.
2Acumula y fija el valor del contexto (ese valor ya no cambia.)
3Toda medida con VAR debe terminar en un único RETURN.
consejo:nombra con guion bajo: _actual, _anterior, etc. (después, cuando quieras invocar variable, escribe el guion bajo)
Variación % Ud vs año anterior =
VAR _actual =   [Ud_vend]
VAR _anterior = CALCULATE (
                   [Ud_vend],
                   DATEADD ( dimFechas[Fecha], -1, YEAR )
                )
VAR _result =   DIVIDE ( _actual - _anterior, ABS ( _anterior ) )
RETURN          _result