Pero como todo lenguaje de fórmulas, DAX no solo requiere conocer funciones, sino también comprender bien el contexto en el que se ejecutan.
En este artículo revisaremos los errores más comunes que cometen quienes están aprendiendo DAX y, más importante aún, cómo evitarlos para crear cualquier representación que necesites en tu reporte de manera efectiva.
👇🏻👇🏻👇🏻
Error: No entender el contexto de filtro
Uno de los errores más frecuentes es no entender cómo DAX evalúa una fórmula en función del contexto de filtro, lo que puede llevar a resultados inesperados, especialmente al usar funciones como CALCULATE.
Ejemplo
Si esta medida se usa dentro de una tabla donde el contexto ya filtra por país, puede parecer que no hace nada.
Cómo evitarlo
Estudia y practica los conceptos de contexto de fila y contexto de filtro, y utiliza herramientas como crear tablas con DAX o la función VALUES() para entender qué filtros están activos.
📌 Usa funciones como REMOVEFILTERS, ALL o KEEPFILTERS con cautela, ya que modifican directamente el contexto.
Error: Olvidar el contexto de evaluación en columnas calculadas
Muchos usuarios intentan escribir medidas dentro de columnas calculadas sin considerar que el contexto de evaluación es diferente.
Ejemplo
Esto no funcionará como se espera en una columna calculada, porque SUM() necesita un contexto de filtro que no está disponible fila por fila.
Cómo evitarlo
Recuerda:
- Columnas calculadas se evalúan fila por fila.
- Medidas se evalúan en contextos agregados.
✅ Si necesitas una suma total o segmentada, probablemente lo que necesitas es una medida, no una columna.
Error: No usar relaciones correctamente
Otro error común es asumir que Power BI siempre hará el trabajo de relacionar tablas automáticamente. Si las relaciones no están bien definidas, las medidas pueden devolver resultados incorrectos o vacíos.
Ejemplo
Usar RELATED() o RELATEDTABLE() sin que haya una relación activa entre las tablas involucradas.
Cómo evitarlo
- Verifica que existan relaciones entre las tablas, y que estas relaciones sean activas.
- Usa el modelo en la vista de relaciones para confirmar direccionalidad y cardinalidad.
- En modelos complejos, considera activar relaciones inactivas con USERELATIONSHIP.
Error: Usar mal funciones de inteligencia de tiempo
Funciones como DATESYTD, SAMEPERIODLASTYEAR, DATEADD, etc., dependen de una tabla de fechas correctamente relacionada. Si esta tabla no es continua o no tiene una relación activa, estas funciones no funcionarán correctamente.
Cómo evitarlo
- Usa una tabla calendario que cubra todos los periodos de tu modelo.
- Relaciónala con tu tabla de hechos (ventas, por ejemplo).
- Usa funciones como DATESINPERIOD, DATESBETWEEN y PARALLELPERIOD solo cuando el modelo tenga fechas válidas y completas.
Error: Usar CALCULATE sin entender cómo cambia el contexto
CALCULATE es la función más poderosa (y más peligrosa) de DAX porque puede reemplazar, agregar o eliminar filtros. Usarla sin saber esto lleva a errores difíciles de detectar.
Ejemplo
Este código reemplaza cualquier filtro previo en la columna Estado, incluso si el reporte ya tiene uno distinto.
Cómo evitarlo
- Estudia cómo CALCULATE evalúa expresiones paso a paso.
- Revisa siempre qué filtros se están manteniendo y cuáles se están sobreescribiendo.
- Usa funciones como KEEPFILTERS() si no quieres reemplazar filtros, sino sumar condiciones.
Error: Crear modelos con tablas desconectadas sin saber usarlas
Muchos crean tablas de soporte (como una tabla de segmentación de precios o de escenarios) que no tienen relación con otras tablas del modelo, y luego intentan usarlas como si tuvieran efecto directo.
Cómo evitarlo
- Si vas a usar tablas desconectadas, necesitas crear medidas con funciones como TREATAS o LOOKUPVALUE.
- Asegúrate de saber cuándo necesitas relaciones físicas y cuándo puedes manejar el cruce de datos mediante fórmulas.
Error: Usar IF en lugar de SWITCH o de cálculos vectorizados
Muchos usan IF anidados de forma ineficiente o sin considerar que las funciones condicionales también siguen reglas de evaluación de contexto.
Cómo evitarlo
- Prefiere SWITCH(TRUE(), …) cuando tengas múltiples condiciones.
- Considera usar DIVIDE() en lugar de IF([Denominador] <> 0, [Numerador]/[Denominador])
- Recuerda que DAX trabaja de forma vectorizada y que a veces hay formas más limpias de expresar la lógica.
Error: Repetir lógica en múltiples medidas
Copiar y pegar la misma lógica (por ejemplo, el cálculo de "Clientes Activos") en varias medidas, en lugar de centralizarla, genera duplicidad, errores y mantenimiento complejo.
Cómo evitarlo
- Crea medidas base reutilizables y luego compón medidas más complejas sobre ellas.
- Usa variables (VAR) para definir pasos intermedios.
- Esto mejora tanto el rendimiento como la legibilidad del código.
Error: No validar los resultados con tablas simples
Creas una medida compleja y te sorprendes cuando el resultado no tiene sentido, pero no haces una validación paso a paso.
Cómo evitarlo
- Usa visualizaciones tipo tabla para ver cómo se comporta tu medida fila por fila.
- Revisa los resultados con ejemplos simples antes de confiar en los números agregados.
- Utiliza RETURN en medidas temporales para evaluar valores de variables intermedias.
Aprender DAX es mucho más que memorizar funciones. Es entender cómo el modelo, el contexto y el lenguaje interactúan entre sí.
Cometer errores es parte del aprendizaje, pero saber detectarlos y evitarlos te convertirá en un desarrollador de Power BI más eficiente y confiable.
Domina DAX con nuestro curso especializado en
www.datdata.com/dax