ALL vs ALLSELECTED en Dax y Power BI

La diferencia entre la función ALL en DAX y ALLSELECTED puede causar confusión si estás empezando con Power BI (reconozco que a mí me ha vuelto loca 🤪). En este artículo, voy a repasar las principales diferencias entre ambas funciones DAX y sus respectivos usos en nuestros informes de Power BI. 

Función ALL en DAX

Primero vamos a definir la función ALL con la descripción que nos proporciona Power BI al hacer referencia a la función:

 

ALL: Devuelve todas las filas de una tabla, o todos los valores de una columna, omitiendo los filtros que se hayan aplicado.

¿Qué significa esto? Bueno, esto significa que aunque nosotros utilicemos algún filtro esta función nos devolverá la venta total sin filtros.

Os pongo un ejemplo, en la siguiente imagen tengo el total de ticket realizados por cada uno de mis agentes pero si quisiera conocer cuál es el porcentaje total de tickets que representa cada agente contra el total general tendría que usar la función ALL. 

 

Para conocer este dato utilizaré la función CALCULATE  junto a ALL para quitar los filtros que se están aplicando. 

Para eso voy agregar una nueva medida que llamaré TOTAL ticket ALL:

 

				
					Total ticket ALL = CALCULATE([Total ticket],ALL(F_Tickets))
				
			

 

Con esta medida lo que nos va hacer es que no nos va a considerar ningún filtro aplicado. Cómo veis en la siguiente imagen me ha sumado todos los tickets y en cada una de las celdas nos encontramos el mismo valor, ese valor representa el total de los tickets.

 

Ahora si podríamos conocer cuál es el porcentaje de ticket de cada uno de los agentes respecto al total general con la siguiente medida:

				
					% ticket agentes ALL = DIVIDE([Total ticket], [Total ticket ALL],0)
				
			

 

Cómo podéis comprobar en la imagen, una vez que he añadido la medida a la tabla me muestra el % de ticket basado en los filtros que tengo seleccionados, pero no me muestra el total general de ALL ya que este está dividiendo entre todos los tickets.

¿Entonces? ¿Cómo podemos ver el % total de ticket de cada uno de mis agentes contra el total general?.

Aquí es donde entra la función ALLSELECTED. 

Función ALLSELECTED en DAX

 

Al igual que hemos hecho con ALL vamos a definir la función ALLSELECTED según viene en la descripción que nos proporciona Power BI cuando hacemos referencia a esta función. 

 

 

ALLSELECTED: Devuelve todas las filas de una tabla, o todos los valores de una columna, omitiendo los filtros que se hayan aplicado dentro de la consulta, pero conservando los filtros externos.

Siguiendo el ejemplo en el que estábamos trabajando vamos a crear una nueva medida que llamaré Total ticket ALLSELECTED:

				
					Total ticket ALLSELECTED = CALCULATE([Total ticket],ALLSELECTED(F_Tickets))
				
			

 

Esta función lo que me hará es que me va a quitar los filtros de esta tabla, pero me va a respetar los filtros exteriores.

 

Ahora, al igual que hemos hecho con ALL vamos a calcular el % total general de ticket.

Para eso vamos a realizar la siguiente división creando la medida con nombre % ticket agentes ALLSELECTED:

 

				
					% ticket agentes ALLSELECTED = DIVIDE([Total ticket], [Total ticket ALLSELECTED],0)
				
			


Y ahora verás cómo agregando esta medida a la tabla ya nos da porcentaje 100% en todas las filas cuando quitamos los filtros. Y ahora sí podemos calcular el porcentaje correspondiente a cada agente. 

En la imagen te muestro como quedaría este ejemplo comparándolo con las medidas creadas para la función ALL y su % y la función ALLSELECTED con su %.

Y ya sabes, si te ha resultado útil esta información ayudame compartiéndola en tu red social favorita.

Facebook
Twitter
LinkedIn
WhatsApp

🤞 ¡No te pierdas ningún artículo!

¡No hacemos spam!

Noelia Navarro

Empecé mi carrera profesional en departamentos de administración contable, laboral y logística permitiéndome desarrollar nuevas técnicas para mejorar mi trabajo y descubrir así mi verdadera pasión el análisis de datos.
3.7 3 votes
Article Rating
Subscribe
Notify of
guest

2 Comentarios
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Juan

Excelente!!! Muchas gracias por el aporte, me sirvió para despejar todo tipo de dudas.