|

Cambiar el Contexto de Fila con varias Tablas

0
(0)

En anteriores artículos hemos visto como la función CALCULATE en DAX puede cambiar el Filter Context para una tabla y convertirlo en Row Context. CALCULATE puede hacer más cosas entre otras y la más importante función es manipular, a petición, el Filter Context.

La función CALCULATE acepta dos formas de parámetros de filtro. La primera forma es una expresión Booleana, parecido a la condición de la función FILTER. Este tipo de filtro se conoce como filtro de tabla o table filter. Por ejemplo, la siguiente expresión calcula la cantidad total para el continente europeo.

VentasEuropa:=CALCULATE ( SUM ( Orders[Amount] ); Ciudad[Continente] = "Europa" )

La anterior expresión es similar a la siguiente:

VentasEuropa := SUMX( FILTER( Orders; RELATED ( Ciudad[Continente] ) = "Europa" ); Orders[Amount] )

La diferencia principal entre ambas expresiones es que la función CALCULATE sustituye el filtro actual de la tabla Ciudad por el filtro que tiene la expresión, mientras que la expresión con FILTER retorna blancos si la tabla tiene otro filtro. Por lo tanto, si quieres sustituir el filtro actual por el filtro de la expresión, es mejor utilizar la función CALCULATE.

Como norma, recomiendo utilizar la función CALCULATE en lugar de otras funciones ya que es mucho más rápida, la expresión basada en FILTER es mucho más lenta que la función CALCULATE.  Esta es otra de las razones por las que es importante conocer la función CALCULATE a fondo, siempre es mucho más rápida que otras funciones como FILTER, SUMX ….

En el siguiente artículo, explicaré el motivo de porque la función CALCULATE es más rápida que otras funciones.

 

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Puntuación media 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *