Contexto de Evalución con Power BI, un resumen
En el siguiente artĆculo vamos a recapitular todos los puntos importantes del contexto de evaluación:
- El contexto de evaluación es el contexto que modifica el valor retornado por una expresión DAX filtrando los datos del modelo dando lugar a lo que se conoce como current row o fila actual, cuando necesitamos acceder al valor de una columna.
- El contexto de evaluación (Evaluation Context) estÔ formado por dos partes: el row context y el filter context. Ambos contextos coexisten y estÔn presentes en todas las fórmulas. Para comprender la conducta de todas las fórmulas se deben dominar ambos conceptos, porque operan al mismo tiempo.
- DAX crea automÔticamente un contexto de fila cuando definimos una columna calculada. Adicionalmente, también se puede crear un contexto de fila añadiendo funciones de iteración (iterator functions). Todas las funciones de iteración definen un contexto de fila.
- Se pueden anidar contextos de fila, la función EARLIER es la mÔs útil para conseguir acceso al contexto de fila previo.
- DAX crea un contexto de filtro al usar una pivot table con campos en filas,columnas y/o filtros. Hay una puerta trasera para crear contexto de fila utilizando la función CALCULATE.
- El contexto de fila no se propaga automÔticamente a través de las relaciones. La propagación ocurre manualmente utilizando las funciones RELATE y RELATEDTABLE. Tienes que usar ambas funciones en el lado correcto de la relación one-to-many para que puedan funcionar. RELATED en el lado «muchos(many)» de la relación, RELATEDTABLE en el lado «uno(one)» de la relación.
- El contexto de fila (filter context) se propaga automÔticamente entre las relaciones de un modelo. Siempre se propaga desde el lado one(uno) al lado many(muchos). Tienes la opción de activar la propagación desde el lado many (muchos) al lado one(uno). En este caso, no hay funciones para realizar esto, el motor Power Pivot, automÔticamente realiza la propagación según lo definas en el sentido de la relación.
- VALUES retorna una tabla con los valores únicos de una columna de una tabla dentro de su contexto de filtro. Se puede utilizar el resultado de esta tabla como iterador en cualquier fórmula.
