Power BI · Guía práctica

10 errores comunes de DAX en Power BI y cómo evitarlos

DAX parece sencillo al principio, pero tiene particularidades que provocan resultados incorrectos sin mostrar ningún error. Estos son los diez fallos más comunes y cómo corregirlos.

Antes de aplicar los ejemplos: los nombres de tablas, columnas, separadores decimales y rutas son ilustrativos. Adáptalos a tu archivo, versión y configuración regional; valida el resultado con una muestra pequeña.

1. Usar columnas calculadas en lugar de medidas

Si vas a sumar, promediar o calcular ratios, usa medidas. Las columnas calculadas aumentan el tamaño del modelo y no reaccionan a los filtros del informe.

2. No entender el contexto de filtro

Una medida devuelve un valor distinto según dónde se coloque: una fila, un segmentador o una tarjeta. Si el resultado te sorprende, pregúntate qué filtros están activos en ese visual.

Diagrama del contexto de filtro en DAX
Cómo los filtros del informe llegan a una medida antes de calcular el resultado.

3. Dividir con el operador /

Margen = [Beneficio] / [Ventas]     -- puede dar error
Margen = DIVIDE([Beneficio], [Ventas])

DIVIDE controla la división entre cero y devuelve un valor en blanco.

4. No tener una tabla de fechas

Sin una tabla de calendario marcada como tal, funciones como SAMEPERIODLASTYEAR o TOTALYTD dan resultados erróneos o errores.

5. Filtrar con FILTER sobre toda la tabla

-- Menos eficiente
CALCULATE([Ventas], FILTER(Ventas, Ventas[País] = "España"))
-- Mejor
CALCULATE([Ventas], Ventas[País] = "España")

Cuando el filtro es sobre una sola columna, la forma simple es más rápida y legible.

6. Abusar de relaciones bidireccionales

Pueden hacer que un filtro se propague de formas inesperadas y provocar ambigüedad entre tablas. Mantén la dirección única siempre que puedas.

7. Confundir SUM con SUMX

SUM suma una columna existente. SUMX evalúa una expresión fila por fila y luego suma el resultado:

Ingresos = SUMX(Ventas, Ventas[Cantidad] * Ventas[Precio])

Si intentas multiplicar dos columnas dentro de SUM, obtendrás un error.

8. Anidar demasiados IF

Varias condiciones encadenadas son difíciles de leer. SWITCH lo hace más claro:

Nivel = SWITCH(TRUE(),
    [Ventas] >= 10000, "Alto",
    [Ventas] >= 5000, "Medio",
    "Bajo")

9. No usar variables

Con VAR guardas un cálculo una sola vez y lo reutilizas, lo que mejora la legibilidad y el rendimiento:

Variación % =
VAR Actual = [Ventas]
VAR Anterior = [Ventas AA]
RETURN DIVIDE(Actual - Anterior, Anterior)

10. Descuidar nombres y formato

Nombra las medidas de forma descriptiva ("Ventas Netas", no "Medida1"), asigna el formato correcto (moneda, porcentaje) y agrúpalas en una tabla dedicada. En modelos grandes, esto marca la diferencia entre un proyecto mantenible y uno caótico.

Cómo depurar

Si un resultado no cuadra, crea una tabla visual con las dimensiones implicadas y compara valores. Revisa las relaciones y prueba la medida por partes, empezando por la versión más simple.