Transcripción del video
En esta ocasión vamos a estar viendo la pregunta de un alumno en el curso de “Power BI – Máster en Poco Tiempo”.
La pregunta se llama “Transformar números en rangos” y dice:
—————
Hola Diego, creo que sería interesante hacer un capitulo dedicado a la transformación de números en rangos.
Por ejemplo tenemos ventas que van de “0 a 1000” otras de “1001 a 5000” y queremos cuantos vendedores están en el primer rango y cuantos en el segundo rango.
Gracias.
—————
Bien pues en esta ocasión vamos a estar contestándole en video porque creo que es algo que a ti también te puede servir.
Esto lo podemos hacer en dos niveles diferentes: a nivel transaccional o a nivel consolidado. Para el nivel transaccional vamos a estar viendo la funcionalidad que ya viene con Power BI y para el nivel consolidado vamos a sumar las ventas por cliente y vamos a crear los rangos con DAX. Este segundo método también nos va a dar mayor flexibilidad.
El primer método lo vamos a aplicar a nivel transaccional, en nuestra tabla donde se registran todas las ventas. Esto se hace fácilmente. Únicamente hacemos clic derecho en la columna donde queremos poner el rango y seleccionamos la opción de New Group.
En la ventana que aparece tenemos varios campos. Para este ejercicio voy a seleccionar el número de rangos que deseo. Hago clic en Ok. Y eso me va a agregar un campo nuevo. Este campo lo vamos a poder arrastrar y poner como Eje de nuestras visualizaciones. Lo voy a poner como eje en una visualización de columnas y agrego el conteo de ventas para cada rango.
Sin embargo, esto no me permite utilizar rangos definidos por mí. Además de que hacer esto en una tabla transaccional es fácil, incluso sin esta funcionalidad que ya tiene Power BI.
Para crear rangos acumulados me voy a pasar a la tabla de Clientes. Y aquí quiero mencionarte que esto se puede hacer de diferentes maneras, esta es solo una de las maneras que se puede lograr.
Aquí en la tabla de Clientes no tenemos la Venta, por lo que primero necesitamos la venta. Para eso voy a agregar una nueva columna a la tabla. Si aquí solamente escribo
Ventas Cliente = SUM(Ventas[Venta (columna)])
Y presiono Enter, me va a dar un resultado no esperado. Esto se debe a un tema de Row Context y Filter Context que ahorita no lo vamos a ver a fondo pero que se resuelve usando la función CALCULATE. CALCULATE lo que hace es convertir un Row Context a un Filter Context. Entonces la columna queda
Venta = CALCULATE(SUM(Ventas[Venta (columna)]))
Presiono Enter. Y ya tenemos la venta por cliente.
Bien, antes de continuar, ¿quieres descargar este archivo de Power BI y las diferentes tablas con datos? Ve al link que se encuentra en la descripción y podrás descargar todo este material y más. Además suscríbete y déjame un comentario para saber qué es lo que quieres aprender.
Ahora tenemos que crear una nueva columna, en la cual vamos a tener nuestros rangos. Esta nueva columna la vamos a trabajar con DAX y voy a escribir
Bins =
SWITCH(TRUE(),
)
El SWITCH(TRUE()) lo que hace es forzar que el argumento sea TRUE() y ahora va a evaluar las siguientes evaluaciones que regrese TRUE(). Entonces aquí voy a agregar mis rangos.
Bins =
SWITCH(TRUE(),
Clientes[Venta] <= 300000, “<= $300”,
Clientes[Venta] <= 400000, “$300k a $400k”,
Clientes[Venta] <= 500000, “$400k a $500k”,
“Mayor a $500k”
)
Aquí estoy evaluando si el valor en la columna de Venta es menor que $300,000, luego si es menor de $400,000 y así sucesivamente. Presiono Enter y verás que obtenemos una columna con nuestros rangos.
Ahora pasemos a nuestro Reporte. Ahí puedo agregar esta nueva visualización y agregar esta columna con los rangos como eje y contar el número de clientes para cada rango.
Pero fíjate en el orden de los rangos. Este orden no es lógico, por lo que vayamos a trabajarlo.
Para eso voy a agregar una nueva columna en la tabla de clientes. Donde voy a escribir
Bins (orden) = SWITCH(Clientes[Bins],
“<= $300”, 1,
“$300k a $400k”, 2,
“$400k a $500k”, 3,
4
)
Aquí te tienes que asegurar que cada rango tenga un valor diferente asignado.
Ahora si regreso a la vista de reportes, selecciono la columna con los rangos, y hago clic en el botón “Sort By Column” me da un error. Esto se debe a que Microsoft está detectando que la nueva columna depende de esta columna y no me permite hacerlo (que honestamente pienso que sí debería de dejar realizar esta operación).
Para saltarnos este error que nos marca Power BI, voy a agregar la columna del orden en el Tooltip. Y voy a seleccionar la opción “Average”. Ahora fíjate cómo ya podemos ordenar los rangos basándonos en este valor. Que estoy de acuerdo, no es lo más elegante que existe, pero los otros métodos que conozco, tampoco son muy elegantes.
Ahora si quieres seguir aprendiendo Power BI, puedes seguir viendo más videos de esta lista de reproducción de mi canal, y también me encantaría escuchar de ti. Suscríbete, déjame un comentario o comparte este video. ¡Nos vemos la próxima ocasión! Hasta luego.