Comprensión del contexto de fila y filtro
Desliza para mostrar el menú
Cada cálculo de DAX se ejecuta dentro de un contexto: una definición de qué filas son relevantes en el momento de la evaluación. Sin comprender el contexto, es imposible predecir qué devolverá una medida o diagnosticar por qué devuelve un valor incorrecto.
Contexto de fila
El contexto de fila es el contexto que existe dentro de una columna calculada. Cuando Power Pivot evalúa una columna calculada, procesa cada fila de forma individual: DAX sabe exactamente en qué fila se encuentra y utiliza solo los valores de esa fila en el cálculo.
¿Qué es? La conciencia de la fila actual. La fórmula puede hacer referencia a cualquier columna en la misma tabla y recibir el valor para esa fila específica, no una suma o promedio, sino el valor exacto de la celda.
El contexto de fila no existe para las medidas. Cuando se evalúa una medida, no hay una fila actual, solo un conjunto de filtros activos. Por eso, escribir una etiqueta a nivel de fila como medida genera un error: la medida no tiene una fila sobre la cual evaluarse.
Contexto de filtro
El contexto de filtro es el contexto que existe cuando se evalúa una medida. Es el conjunto completo de filtros activos en el modelo de datos en el momento en que la medida se calcula, determinado por todo lo que la tabla dinámica conoce sobre esa celda específica.
Cada celda en una tabla dinámica tiene su propia combinación única de filtros activos.
Una celda en blanco no indica un error; significa que el contexto de filtro para esa celda no devuelve filas coincidentes. Bajo la combinación actual de filtros activos, simplemente no hay datos.
Las cuatro fuentes del contexto de filtro
El contexto de filtro se acumula simultáneamente a partir de cuatro fuentes independientes. Cada una restringe aún más el conjunto de datos:
- Etiquetas de fila: cada valor en el área de filas aplica un filtro a su fila. Region = North y Region = South crean diferentes contextos de filtro; cada celda en la fila North solo ve las ventas de North;
- Etiquetas de columna: cada valor en el área de columnas agrega una segunda dimensión de filtro. Combinado con las etiquetas de fila, cada celda ahora se encuentra en la intersección de dos filtros independientes;
- Segmentaciones: una selección en la segmentación aplica su filtro a cada celda de la tabla dinámica simultáneamente. Seleccionar January en una segmentación de mes restringe todas las celdas a los datos de January sin importar su posición en fila o columna;
- Filtros de tabla dinámica: los filtros aplicados directamente en el área de filtros de la tabla dinámica también contribuyen al contexto de filtro de cada celda, acumulándose sobre cualquier filtro de fila, columna o segmentación ya activo.
Tarea
Paso 1 — Experimento de contexto de fila
-
Abrir el libro de trabajo. Ir a Power Pivot → Administrar → Vista de datos → pestaña Sales.
-
Observar la columna calculada Order Size. Contiene Large o Small para cada fila, según el valor de Quantity en esa fila.
-
Ahora agregar una segunda columna calculada a la tabla Sales usando la siguiente fórmula:
= Sales[Quantity] * Sales[UnitPrice]
-
Renombrarla como
Row Revenue. -
Desplazarse por la columna y confirmar que cada fila muestra un valor diferente, es decir, el producto de la Quantity y UnitPrice de esa fila específica.
Paso 2 — Luego responder las siguientes preguntas
- ¿Qué tipo de contexto se utiliza cuando DAX evalúa Row Revenue para cada fila?
- ¿Es Row Revenue igual a la columna Total que ya está en la tabla Sales?
- ¿Tendría sentido crear Row Revenue como una medida en lugar de una columna calculada?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla