¿Por qué mis fórmulas DAX se comportan diferente?
Si alguna vez te has preguntado por qué una fórmula funciona como columna calculada pero falla como medida, o por qué tus totales no son lo que esperas, la respuesta está en dos conceptos fundamentales: el Contexto de Fila y el Contexto de Filtro. Entender su diferencia es la clave para desbloquear el verdadero potencial de DAX. Esta guía te ayudará a visualizarlos y dominarlos de forma interactiva.
Contexto de Fila
El calculador que opera fila por fila. Ideal para crear Columnas Calculadas.
Contexto de Filtro
El entorno dinámico que responde a las interacciones. Es el mundo de las Medidas.
Explorando el Contexto de Fila
Imagina una lupa que se mueve de una fila a la siguiente en tu tabla, realizando un cálculo en cada paso sin ver las demás. Eso es el contexto de fila. Solo conoce los valores de la fila actual. Es el mecanismo principal detrás de las columnas calculadas.
Ejemplo Práctico: Crear una Columna 'Ingresos'
Calcularemos el ingreso para cada venta multiplicando su cantidad por el precio unitario.
Tabla de Ventas
| Producto | Cantidad | Precio | Ingresos |
|---|
Explorando el Contexto de Filtro
Ahora, imagina un "entorno" que envuelve tu tabla de datos. Este entorno es definido por las selecciones en tus gráficos, slicers y otras visualizaciones. El contexto de filtro es el conjunto de todas estas selecciones activas. Las medidas viven y respiran dentro de este contexto dinámico.
Ejemplo Práctico: Medida 'Total Ingresos'
Calcularemos la suma total de ingresos, que cambiará dinámicamente según lo que selecciones.
FILTRAR POR CATEGORÍA
Total Ingresos
$1,335.00
Ingresos por Producto
¿Cuándo Usar Cada Uno? La Regla de Oro
| Característica | Columna Calculada (Contexto de Fila) | Medida (Contexto de Filtro) |
|---|---|---|
| Propósito Principal | Etiquetar, categorizar o calcular un valor estático para cada fila. | Agregar valores (sumar, promediar) de muchas filas de forma dinámica. |
| Cálculo | Se calcula una vez durante la actualización del modelo y se almacena en la tabla. | Se calcula al momento, cada vez que interactúas con el informe. |
| Uso en Visuales | Se usa en ejes, leyendas, slicers o para filtrar otros visuales. | Se usa en el área de "Valores" de los gráficos y tablas para mostrar un resultado numérico. |
| Impacto en Rendimiento | Consume RAM porque almacena los resultados. Puede hacer el archivo más pesado. | Consume CPU en tiempo de ejecución. Fórmulas complejas pueden ralentizar la interacción. |
Zona de Práctica: ¡Ahora te toca a ti!
Desafío 1: Contexto de Fila
Crea una columna calculada llamada 'Categoría de Precio'. Si el `Precio Unitario` es mayor a 50, el valor debe ser 'Premium'. De lo contrario, debe ser 'Estándar'.
Solución:
Desafío 2: Contexto de Filtro
Crea una medida llamada 'Cantidad Promedio'. Debe calcular la cantidad promedio de unidades vendidas y actualizarse correctamente al filtrar por producto o categoría.
Solución: