Comparar periodos distintos con segmentador de periodos

Las funciones de inteligencia de DAX nos permiten hacer comparaciones entre muchos tipos de periodos.

Ahora nos planteamos poder tener la información de una empresa, por ejemplo por meses, y poder compararla con la de otro mes, a elegir en un segmentador de datos.

Generalizando, tenemos la información agrupada por un periodo de tiempo, y queremos comprara con otro periodo a elegir: por ejemplo ventas anuales a comprar con cualquier otro año a elegir.

Siempre hablamos de comparaciones del mismo tipo de periodo, por ejemplo meses con meses, o años con años.

Vamos a desarrollar un ejemplo para comparar ventas por meses

Tenemos una tabla Excel con las ventas por meses, para simplificar he creado esta

Importamos nuestra tabla al Power Bi

Damos formato fecha a la fecha

Y añadimos una medida para tener la suma del periodo que usaremos como criterio de agrupación

Importe = SUM(Ventas[Neto])

Ahora necesitamos la típica tabla de calendario, recordemos que la inteligencia de tiempo no funciona bien si no tenemos un calendario continuo

Vamos a Modelado, Nueva tabla y ponemos

Calendario = CALENDAR(DATE(YEAR(MIN(‘Ventas'[Fecha]));1;1); DATE(2017;12;31))

O el periodo que nos interese abarcar

Damos formato e fecha a la date

Y añadimos una columna con el número del mes

Mes = Calendario[Date].[NroMes]

Y por supuesto debemos establecer la relación entre las dos tablas.

Vamos a Relaciones, y arrastramos la fecha de ventas a la date de calendario

Power Bi crea la relación mostrando una línea continua y podemos revisarla haciendo doble clic en la línea

Y ahora viene la parte más especial del sistema. Tenemos que crear otra tabla de calendario, que es la que usaremos para filtrar y comparar

Creamos una nueva tabla con

CalendarioComparacion = CALENDAR(DATE(YEAR(MIN(‘Ventas'[Fecha]));1;1); DATE(2017;12;31))

La llamaremos CalendarioComparacion

La Date, la renombramos como DateComparacion

Ponemos formato fecha a la DateComparacion

Y añadimos el mes comparación

MesComparacion = CalendarioComparacion[DateComparacion].[NroMes]

Y ahora debemos establecer la relación pero la dejaremos inactiva

Vamos a Relaciones y arrastramos la fecha a la DateComparacion

Hacemos doble clic en la relación y desmarcamos Activar esta relación

En el cuadro de relaciones, una está con línea continua, porque esta activa, y la otra con línea discontinua porque no está activa

El último paso es crear una medida que NO aplique ningún filtro de la tabla calendario y si aplique filtros de la tabla CalendarioComparacion

En ventas, creamos una nueva medida con

ImporteMesComparacion = CALCULATE([Importe];ALL(Calendario);USERELATIONSHIP(Ventas[Fecha];CalendarioComparacion[DateComparacion]))

Esto lo leemos como

Calcula, el importe

Sin aplicar ningún filtro de Calendario

Aplicando un filtro, que activa la relación entre Fecha y DateComparacion

Vamos a verificarlo con una tabla

Vamos a Informe, añadimos la visualización tabla y ponemos Mes, Importe e ImporteMesComparacion.

En una columna tenemos las ventas de cada mes y en otra el total de ventas

Ahora añadimos un Segmentador, y le ponemos el MesComparacion

En el segmentador, seleccionamos el mes con el que queremos comparar las ventas.

Por ejemplo las ventas de todos los meses comparadas con las de julio

Ahora tenemos una columna con las ventas mes a mes, otra con las ventas de julio y si queremos la diferencia basta con crear una medida

Diferencia = [Importe]-[ImporteMesComparacion]

Si la añadimos a la tabla tenemos

Encuentro este método muy interesante para poder comparar periodos distintos a elegir de una segmentador

Aquí tenéis el ejemplo en un fichero comprimido Ventas por meses

Un comentario sobre “Comparar periodos distintos con segmentador de periodos”

  1. Hola a tod@s.
    Como hago para tener en cada periodo anual la diferencia con el anterior?
    DifVentas 2018-2017= Ventas 2018-Ventas 2017
    DifVentas 2018-2016= Ventas 2018-Ventas 2016
    DifVentas 2018-xxxx= Ventas 2018-Ventas XXX.
    La solucion la tengo, solo que los resultados me los coloca siempre en el periodo anterior. Es decir, la del 20182017 en el 2017, la del 20172016 en el 2016 y en

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.