Cálculos Year to Date (YtD) en Tableau

En tableau resulta muy sencillo analizar un valor año a año. No obstante esta comparación muchas veces no es relevante si comparamos el año actual con años anteriores ya que el año actual no ha terminado aún y por tanto tendremos menos datos disponibles. Es decir, querremos comparar las ventas en 2016 hasta el día y mes actual (30 de Septiembre) con las ventas en 2015 hasta ese mismo día, lo que se conoce como Year to Date (YtD). En el siguiente ejemplo, vemos el valor de las ventas totales durante los últimos años, incluyendo 2016:

ytd-01

Basándonos en estos datos parece que las ventas en 2016 son menores que en el resto de años. Pero si añadimos un cálculo que muestre la fecha máxima de cada año…

ytd-02

Vemos que como es lógico, de 2013 a 2015 tenemos datos hasta final de año  mientras que para 2016 tenemos datos hasta el día de hoy, 30 de Septiembre de 2016. Para hacer una comparación real del valor de las ventas respecto al año actual, lo que necesitamos es que las ventas de 2013, 2014 y 2015 sean también sólo hasta el 30 de Septiembre.

¿Cómo podemos hacer un análisis YtD en Tableau? Vamos a ver dos formas diferentes de hacerlo.

Método 1: Crear un nuevo cálculo en base a la medida a analizar

El objetivo es no tener en cuenta cualquier venta posterior a esa fecha independientemente del año. Lo que necesitamos es que en el caso de que exista un dato de ventas realizadas después de la fecha de hoy, Tableau devuelva un cero o un valor nulo y no el valor de ventas de la base de datos. Podemos además realizar esto de manera dinámica, de forma que no tengamos que definir la fecha actual, 30 de Septiembre, y cambiarla mañana por el 1 de Octubre. Para ello Tableau cuenta con la función TODAY que devuelve la fecha del día actual actualizándose de forma automática.

ytd-03

¿Qué estamos haciendo con este cálculo? Estamos comparando el mes y el día en el que se realiza la venta con el mes y el día de la fecha de hoy. Si el mes en el que se ha realizado la venta es menor que el mes de hoy, o el mes en el que se ha realizado la ventas es el mismo que el mes actual y el día es menor o igual que el día de hoy, obtendremos el valor de las ventas. En caso contrario (es decir, la venta es algún día del año posterior al día y mes de hoy) en lugar de las ventas, Tableau devolverá un valor nulo.

¿Cómo podemos saber si el cálculo funciona correctamente? Podemos crear una tabla que muestre cada uno de los años, meses y días, y el valor de las ventas. Si creamos una tabla de este tipo utilizando este cáculo esto es lo que vemos:

ytd-04

Como se ve en la tabla, no hay valores de ventas para ninguna fecha posterior al 30 de Septiembre independientemente del año. Mientras que utilizando la variable de ventas inicial, obtendríamos la siguiente tabla con datos para todos los días del año hasta el día de hoy:

ytd-05Ya tenemos nuestro cálculo YtD y además hemos comprobado que funciona correctamente. Ahora podemos comparar nuestro cálculo de ventas YtD y el campo de ventas original y la conclusión es muy diferente: A fecha 30 de Septiembre las ventas de 2016 son claramente superiores a las de los años anteriores.

ytd-06

Debemos tener también en cuenta que si calculamos de nuevo la fecha máxima de cada año, seguiremos obteniendo el 31 de Diciembre ¿Por qué? Porque esa fecha sigue existiendo en nuestra base de datos. Los registros correspondientes a ventas realizadas entre 2012 y 2015 no han desaparecido, simplemente hemos creado un nuevo campo en el que las ventas de los registros en esas fechas no tienen un valor (el campo está vacio), tal como se puede comprobar en la siguiente imagen.

ytd-07

Podríamos ahora comparar las ventas YtD en 2016 y 2015 con un gráfico de bala (bullet chart) para ver la diferencia entre ambos años de forma más efectiva:

ytd-08

Método 2: Crear un nuevo cálculo en base a la fecha

En este caso en lugar de crear un cálculo que devuelva un valor nulo para las ventas que no queremos considerar lo que haremos será devolver un valor nulo en un nuevo campo de fecha para los valores posteriores a la fecha actual. El resultado es idéntico y el procedimiento es muy similar. Pero esta vez queremos que la fecha en sí sea la que tenga un valor nulo y utilizaremos el campo de ventas original.

ytd-09

Si visualizamos el valor original de ventas utilizando el año de este nuevo campo, obtendremos lo siguiente:

ytd-10

Lo que primero destaca es que tenemos una barra con valores nulos correspondientes a las ventas realizadas después del 30 de Septiembre en cualquier año. Por lo que tendremos que filtrar esa barra y así obtendremos los mismos valores que con el anterior método. La ventaja de este método es que si incluimos el valor máximo de esta nueva fecha, el valor máximo será el del día de hoy (en la siguiente imagen salvo para el año 2014, ya que dicho año no hubo ventas ni el día 29 ni el 30 de Septiembre):

ytd-11

También podemos comprobar la base de datos para comprobar exactamente lo que nuestro cálculo está haciendo.

ytd-12

¿Cuál de los dos utilizar?

Personalmente me siento más cómodo con el primero, pero ambos son válidos. La ventaja del segundo es que podemos utilizarlo para cualquier medida que tengamos en nuestra base de datos. Mientras que si queremos calcular el valor YtD de otra medida utilizanod el primer método tendremos que crear un nuevo cáculo YtD para dicha medida. Pero esta es una de las grandes ventajas de Tableau: (casi) siempre hay más de una forma de hacer cualquier cosa.

Por último, si quisieramos que el cálculo no tuviera en cuenta la fecha de hoy y sólo contara las ventas hasta ayer, tan sólo tendríamos que modificar la tercera línea: DAY([Order])<DAY(TODAY()). Es decir, que el día de venta sea menor que el día de hoy, en lugar de menor o igual.

Deja un comentario

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