LODs para filtrar dos niveles distintos de detalle o agregación

Por defecto, en ocasiones los filtros en Tableau no funcionan como podríamos en principio esperar. Un claro ejemplo en este sentido y que me he encontrado en varios clientes es cuando queremos filtrar, en base a una medida agregada, dos gráficos con distintos niveles de detalle. Vamos a ver como podemos solucionar esto con un sencillo cálculo LOD.

Ejemplo

Veamos un ejemplo para que quede más claro. Tenemos un dashboard con dos gráficos. Uno muestra el beneficio, las ventas y el margen de beneficio (la suma del beneficio – SUM([Profit]) – dividido por la suma de ventas – SUM([Sales]) -)  de nuestra empresa para cada una categoría de producto disponible. El segundo, muestra esas mismas variables en una tabla, pero para cliente de la empresa.

Ahora supongamos que queremos filtrar el dashboard en base al margen de beneficio de cada cliente. Tal vez queramos analizar los datos sólo de clientes con un margen positivo, o un margen negativo. Si incluimos el margen de beneficio en filtros y aplicamos dicho filtro a los dos gráficos ¿Qué ocurre?

 

 

Como podemos ver en la imagen de arriba si nos fijamos en los totales includos en la parte superior de cada gráfico, no estamos obteniendo los mismos resultados ¿Por qué? Al fin y al cabo estamos utilizando el mismo filtro para ambos gráficos.

El motivo es el distinto nivel de detalle de cada uno. Nuestro filtro Profit Ratio utiliza el cálculo SUM([Profit]) / SUM([Sales]). Pero para el gráfico de barras el nivel de detalle es la subcategoría (es decir, Profit Ratio nos devuelve dicha medida para cada una de las subcategorías), mientras que la tabla el nivel de detalle es el cliente (Profit Ratio por cliente).

Por tanto, cuando filtramos valores con un Profit Ratio de menos del 10%, estamos filtrando por un lado categorías con un Profit Ratio inferior a dicha cifra, mientras que en la tabla estamos filtrando clientes con un Profit Ratio inferior a dicha cifra. Los resultados, por tanto, no tienen nada que ver.

Utiliza un cálculo LOD

No contamos con la dimensión cliente en nuestro gráfico de barras, y además si lo incluimos en el nivel de detalle, no tendremos una barra para cada subcategoría, sino que cada una de estas se dividirá, mostrando una marca para cada uno de los clientes ¿Cómo podemos solucionar esto y filtrar, para ambos gráficos en base al margen de beneficio de los clientes?

 

Aquí es cuando utilizar LOD es extremadamente útil ya que lo que queremos no es filtrar en base al margen de beneficio. Queremos filtrar en base al margen de beneficio de cada cliente. Es decir, lo que queremos es una variable que fije el cálculo del margen de beneficio para cada cliente independiente del nivel de detalle que tengamos en la visualización. Es decir:

 

Profit Ratio by Client = { FIXED [Customer Name] : [Profit Ratio] }

 

Recordad que al utilizar un cálculo LOD debemos utilizar una medida agregada – SUM([Sales]) o AVG([Sales]) por ejemplo – pero en este caso particular, al ser Profit Ratio un cálculo ya agregado – SUM([Profit]) / SUM([Sales]) – nuestro nuevo cálculo funcionará perfectamente.

 

Perfecto, ahora ya tenemos un cálculo que nos devuelve el margen de beneficio a nivel de cliente. Por lo que utilizaremos este nuevo cálculo como filtro. Pero ojo, porque si simplemente arrastramos el nuevo cálculo a filtros, por defecto estará filtrando utilizando la SUMA del nuevo cálculo. Lo cual funcionará sin problemas en nuestra tabla con el nivel de detalle del cliente, pero no en nuestro gráfico de barras, ya que lo que hará será sumar el margen de beneficio de cada uno de los clientes incluidos en las ventas de esa categoría.

 

Para asegurarnos de que el filtro funciona correctamente, arrastamos haciendo click con el botón derecho del ratón nuestra nueva medida a filtros, y seleccionamos ‘All Values’ para que el filtro muestre valores sin agregarlos al nivel de la subcategoría.

 

 

Comprobando los resultados

Si ahora utilizamos este filtro en los dos gráficos, los totales coinciden, porque estamos especificando a Tableau que el cálculo del margen de beneficio sea siempre al nivel de detalle del cliente, y estamos utilizando dicho filtro para ambos gráficos.

 

 

Ahora, incluso aunque filtremos valores inferiores al 10%, vemos que contamos aun con categorías con un margen de beneficio menor. Ya que Tableau no está filtrando para el gráfico de barras las categorías que, en total, tienen un margen de beneficio menor al 10%, sino que está filtrando los clientes con un margen de beneficio superior al 10% que tienen alguna venta de la subcategoría en cuestión.

Vemos además como las cifras totales de beneficio, ventas y margen de beneficio cuadran en ambos gráficos, lo que demuestra que estamos filtrando exactamente los mismos datos en ambos casos.

Deja un comentario

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