Variación Porcentual con tus ventas a un lado — en Power BI

TheArnoldData
9 min readApr 29, 2024

(Actualizado 29/04/2024- con un dataset para que puedas llevarlo a práctica)

Una de las principales razones por las que existen un Departamento de Inteligencia de Negocio, es justamente para poder ayudar a mejorar procesos y encontrar respuestas a problemas del día a día.

Y una de nuestras funciones dentro del departamento es la de poder visualizar aquella información que hemos recolectado a lo largo de nuestra búsqueda.

Y hablando, por ejemplo, para el caso de las ventas, donde solemos tener las constantes de Ventas en unidades como Ventas en unidades monetarias, solemos visualizar estas constantes generalmente en un gráfico de líneas o un gráfico de barras, y siempre que hacemos esto, algún Stakeholder o interesado en la data, nos consultará sobre cuál es la variación porcentual entre un mes y otro.

Y más allá de calcularlo de forma manual: a papel y lapiz (y usando la fórmula):

Visualizaremos nuestro gráfico de la siguiente manera:

Es por eso que, te presento:

¿cómo lograr colocar la variación porcentual de un mes a otro mientras mantengo los datos originales de ventas?

Requisitos:

  • Curiosidad y ganas de aprender.
  • (Actualizado) Dataset que encontrarás acá: https://t.ly/INYCN
  • (Actualizado) Tabla calendario que encontrarás acá: https://t.ly/9ktB3
  • Power BI instalado.

Paso 1: Colocar las cosas en orden.

Una vez cargada nuestra de data a nuestro modelo y conectado la tabla calendario de nuestra preferencia, basta y sobra con seleccionar el gráfico de líneas o Line Chart en inglés.

Paso 2: Mostrar la información tal y como lo deseamos.

Teniendo nuestro lienzo vacio, cual artista inspirado, colocaremos en los ejes X y Y respectivamente nuestra data, en mi caso particular colocaré en el eje X una variante de tiempo, en este caso colocaré el campo Mes de mi tabla calendario; y para el eje Y, colocaré mi variante numérica o la cantidad de unidades vendidas.

Nos queda algo así:

Bastante feo ¿no? tranquilo, que todo artista empieza con un par de pinceladas de prueba.

Paso 3: Vamos a dar formato y aumentar tamaños para poder leer.

Este paso, para muchos de mis colegas y amigos lo dejan de último, pero, inicio primero por acá para que desde un comienzo veamos como nos va quedando las cosas a medida que armemos, y de las primeras cosas que haremos será aumentar el tamaño de las letras y colocar los datos o “labels” en nuestro gráfico para que se vea más bonito.

Esto lo logramos en la pestaña de “Formato de Visual” identificado con este logo:

Una vez acá, lo primero que haremos será habilitar la casilla de etiquetas o Data Labels, que está más abajo:

Les daremos click a esa opción para deslizar, una vez pulsado, desplegaremos la pestaña mediante la flecha que está a un costado, una vez pulsado nos iremos nuevamente más abajo hasta Valores o Value:

Aumentaremos el tamaño de nuestros valores hasta que seamos capaces de leerlo de una manera adecuada y sin esfuerzo, por defecto está en 9, en mi caso, lo dejé en 14, vemos como queda con este nuevo nivel de tamaño:

Repetiremos lo mismo con el Eje X y Y, podremos colocar también en negrillas (La B)en este caso los meses del año para que cualquiera que lo lea lo pueda identificar rapidamente.

Para la X lo dejé en 12, para la Y lo dejé en 12 también

Aquí nuestro gráfico toma mayor vida.

Teniendo seleccionado el gráfico, nos desplazamos hasta la opción de General, ubicado a un lado de la parte donde estamos editando:

Una vez acá, seleccionaremos Efecto o Effects, y daremos click en donde dice Borde Visual y Sombra o Visual Border y Shadow, esto para dar más calidez al gráfico.

Nos iremos más arriba y seleccionaremos la sección de Título o Title, para este caso no hay nada mejor que, algo resaltante y que identifique rapidamente de lo que se tratará el gráfico; por ello siempre alineo el título al centro, aumento su tamaño y cambio el colocar fondo, en estas opciones:

El color de fondo o Background color es para colocar un fondo en nuestra sección de título, acá preferiblemente utilizaremos los colores de nuestra marca, a su vez, para el estilo de letra, seleccionaremos el que mayor transmita para la marca. — Donde dice Texto o Text, es el título que llevará nuestro gráfico, colocaré algo como: Unidades Vendidas por Mes

(En mi caso coloqué tamaño 16, fondo de color: #A0A7D8, centrado y el tipo de letra: Segoe UI Semibold.)

Quedando así:

Paso 4: Modelando con funciones DAX.

Una vez nuestro gráfico agarró personalidad, nos iremos a escribir un par de funciones DAX, nos ubicaremos en la sección de Datos o Data, y ubicados en la tabla de Medidas que tenemos de preferencia, daremos click derecho y daremos a Nueva Medida y escribimos este DAX:

% VAR UNDMensuales=
VAR Ventas_PM=
CALCULATE( SUM(DatasetBI[Unidades que Vendimos]) ,
DATEADD(_Calendario[Date], -1, MONTH)) --Columna Fecha del Calendario
VAR Variacion=
DIVIDE(
(SUM(DatasetBI[Unidades que Vendimos]) - Ventas_PM) , Ventas_PM , 0)

RETURN
IF( ISBLANK(Ventas_PM), 0, Variacion)
///////Esto debe formatearse en formato de porcentaje %

Expliquemos el DAX:

VAR Ventas_PM=
CALCULATE( SUM(DatasetBI[Unidades que Vendimos]) ,
DATEADD(_Calendario[Date], -1, MONTH))

Esta parte, usando la función CALCULATE, sumaremos mediante el uso de SUM, las unidades vendidas de nuestra tabla de información, pero, también haremos uso de un filtro mediante DATEADD, con esta filtraremos las ventas del mes anterior.

VAR Variacion=
DIVIDE(
(SUM(DatasetBI[Unidades que Vendimos]) - Ventas_PM)
, Ventas_PM , 0)

Este DAX, lo que hace es seleccionar las ventas del mes actual mediante SUM, y usando la misma fórmula:

Lograremos obtener el valor de la variación.

RETURN
IF( ISBLANK(Ventas_PM), 0, Variacion)

Retornamos el valor obtenido en la fórmula anterior, pero, si no hay valor alguno, me dejarás un 0, sino me dejarás Variación.

Paso 5: Ingreso dentro del gráfico.

Nos iremos nuevamente a la sección de Etiquetas o Data Labels de nuestro gráfico y habilitaremos la opción de detalles o Detail:

Una vez desplegado, seleccionaremos el espacio vacio que dice data, allí se nos despliega un menú y tocaremos la medida recien creada:

Una vez hecho, nos iremos más abajo, donde dice: Mostrar unidades como o Display Units y seleccionaremos Personalizado o Custom y copiaremos lo siguiente:

▲ +0.0%;▼ -0.0%;0.0%

Nos iremos a la opción de color y pulsaremos la opción fx, y nos mostrará algo como esto:

Donde dice Estilo de Formato o Format Style, seleccionaremos Reglas o Rules.

En la sección: ¿En qué campo nos debemos basar en esto? o What Field Should we base this on?, seleccionaremos nuestra recien recreada medida. Ahora incluiremos 3 reglas seleccionando la opción de: Nueva Regla, lo pulsaremos 2 veces.

Y lo dejaremos de la siguiente manera:

Para dejar lo valores en Mínimo y Máximo, basta y sobra con eliminar los valores que estén allí plasmados.

Ahora, en las casillas donde hay un pequeño recuadro de color, lo abriremos para editar (desde arriba hacia abajo) y coloremos los siguientes códigos de colores:

  • Rojo #DE6A73
  • Gris #CCCCCC
  • Verde #22B54B

Así iremos copiando los códigos de los colores de la siguiente manera:

Quedando así:

Una vez pulsemos Ok, aumentemos el tamaño de los números de unas vez, y así queda nuestro gráfico:

Haremos lo mismo, pero en vez de la sección de Detalle, lo haremos para Valores en la sección de Color:

Quedando así:

Quedando nuestro gráfico de la siguiente manera:

  • Logrando así el propósito de este tutorial. Solo nos queda acomodar y ponerlo más “bonito”

Paso 6: Mayor estética.

En lo personal, valoro más un gráfico con líneas redondas que en puntas como actualmente lo tenemos, por eso, nos vamos a Líneas o Lines; y en la sección de Tipo de Interpolación o Interpolation Type seleccionamos Suave o Smooth.

Más abajo en la sección de Marcadores o Markers, igualmente lo habilitamos y a gusto personal pueden seleccionar el tipo de punto que estará en cada mes, lo dejaré en punto para fines informativos.

Podemos habilitar también el Color de Área o Shade Area, que hará que se pinte el área por debajo de nuestra línea, esta por defecto coinciderá con el color de la línea, pero, también podemos cambiarlo.

Ahora bien, el tono de manera predeterminada, viene con una transparencia al 60%, para un fin estético, lo colocaré a 77%.

Y aprovecharé de cambiar el color de la línea de color azul a uno amarillo bastante vistoso, en la misma sección de Líneas o Lines, donde cambiamos el estilo de línea, lo dejaré en este tono de amarillo: #E1C233

Así va nuestro arte:

Para darles mayor espacio a los valores y que la línea no esté tan pegada al borde del gráfico, iremos a la sección de Eje Y, y en Rango o Range, jugaremos de acuerdo a los valores en Y para darle mayor espacio.

En mi caso, para el mínimo seleccioné: 8.000 (El menor número en la gráfica es 15K) y para el máximo: 100.000 (El mayor número en la gráfica es 100K)

Igualmente, podemos seguir personalizando nuestros tamaños de letras o de valores, para colocarlo a nuestro gusto y preferencia.

Y para su interpretación en el caso del mes de Julio contra Junio, disminuimos en las unidades vendidas por un 14.3% con respecto a Junio — Y así sucesivamente.

A su vez, puedes modificar la fórmula DAX para ver dicha variación a través de distintas medidas de tiempo como es número de semana, días, entre otros. También modificar y no solamente aplicarlo para ventas, también puedes calcularlo con unidades monetarias, promedios diarios, transacciones, entre otros.

//////////////////Te dejo este de ejemplo para unidades diarias
% VAR UNDDiarias = 
VAR Ventas_PM=
CALCULATE( SUM(DatasetBI[Unidades que Vendimos]) ,
DATEADD(_Calendario[Date], -1, DAY))
VAR Variacion=
DIVIDE(
(SUM(DatasetBI[Unidades que Vendimos]) - Ventas_PM) , Ventas_PM , 0)
RETURNIF( ISBLANK(Ventas_PM), 0, Variacion)///////Esto debe formatearse en formato de porcentaje %

¡Y esta solución no solo funciona con el gráfico de líneas sino también con el de barras!

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

¡Muchas gracias por haber llegado hasta acá! Con gusto podrán sugerir temas para seguir posteando.

Si te puedo ayudar o agregar valor en algo, no dudes en contactarme por LinkedIn

--

--