Caso muy habitual al dar los primeros pasos con Tableau: Queremos analizar los productos que están generando los mayores ingresos en nuestra empresa y conocer la categoría a la que pertenece cada uno de ellos. Para ello, usamos el nombre del producto en Filas, los ingresos en Columnas y utilizamos la categoría del producto en Color obteniendo algo similar a esto:
Hasta aquí no hay problema. Tal vez queramos poder filtrar para cada una de las categorías, por lo que utilizaremos de nuevo la variable Categoría pero esta vez también como Filtro y utilizaremos un filtro que permita escoger una única categoría. Pudiendo usar dicho filtro para seleccionar la categoría de interés y obtener algo parecido a la siguiente imagen:
Todo bien de momento. Ahora, para reducir el número de productos mostrados, vamos a reducir el número de productos mostrados, y vamos a centrarnos exclusivamente en los 10 productos con mayores ingresos. Usamos de nuevo nuestra variable con el nombre del producto, pero esta vez en filtros, y en la pestaña Top seleccionamos el Top 10 productos por ingresos:
Y seleccionando todas las categorías en nuestro filtro, obtenemos el siguiente gráfico:
Genial. Sin problemas hasta ahora ¿verdad? Pero ¿qué ocurre si seleccionamos otra de las categorías en nuestro filtro? Vamos a ver…
¡Ups! ¿Por qué Tableau sólo muestra 2 productos, y no el top 10 para la categoría seleccionada? El motivo es el orden de operaciones (order of operations en inglés).
¿Qué es el orden de operaciones?
El orden de operaciones es básicamente el orden en el que Tableau realiza ciertas tareas en una hoja antes de mostrar el gráfico resultante en pantalla. En nuestro ejemplo, tenemos un filtro en base a una dimensión y otro filtro en base a un Top N elementos. Lo que Tableau está haciendo es hacer primero el filtro del Top 10 productos y, a continuación, el filtro por categoría. Esta es la razón por la que nuestro filtro de categoría, ahora sólo nos muestra los productos que, estando en el Top 10 total, forman parte además de la categoría seleccionada.
Este es el orden en el que Tableau hace las distintas operaciones, y es realmente útil a medida que se realizan análisis más complejos en Tableau.
Como se puede ver, Tableau primero tiene en cuenta los filtros de los extractos de datos, a continuación los filtros en la fuente de datos, después filtros en contexto (de los que hablaremos ahora), a continuación realiza los sets, filtros condicionales, top N y cálculos con Fixed LOD, a continuación tienen lugar los filtros de dimensiones (aquí estaría nuestro filtro por categoría, justo después del filtro del top 10 como he explicado más arriba), posteriormente blending y cálculos Include y Exclude con LOD, filtros de medidas, y en las tres últimas posiciones Tableau realiza cálculos de tabla, totales, clusters, forecasts, luego filtros con cálculos de tabla y por último Tableau realiza las líneas de tendencia y referencia.
Conocer el orden de operaciones resulta muy útil en ciertos casos, pero especialmente para entender por qué en algunos casos, como nuestro ejemplo, en el que Tableau no está mostrando lo que esperábamos que mostrase. Otro ejemplo, es que un cálculo con Fixed LOD no se verá afectado por un filtro en base una dimensión, ya que Tableau primero realiza el cálculo Fixed y presenta los resultados, y posteriormente filtra los datos.
En nuestro caso como ya hemos dicho, Tableau primero realiza el análisis de Top 10 productos por venta, y posteriormente filtra por categoría.
Filtros en contexto o context filters
Como se puede ver en la imagen del orden de operaciones, hay un tipo de filtro, los filtros en contexto, que tienen lugar antes que los cálculos top N y los filtros de dimensiones ¿Pero cómo podemos crear un filtro en contexto?
Muy fácil, basta con hacer click derecho en un filtro, en nuestro caso, el filtro de categoría, y seleccionar la opción Add to context para que dicho filtro pase a ser un filtro en contexto.
Ahora el filtro se mostrará en un color gris, indicando que está en contexto, y nuestro gráfico mostrará el top 10 productos para cada una de las categorías ya que ahora, Tableau primero filtra para cada categoría (al estar en contexto y en base al orden de operaciones) y posteriormente realiza el análisis top 10 en base a la categoría o categorías seleccionadas.
Y tu, ¿has utilizado filtros en contexto antes? ¿Hay algún caso de uso que te interese y sobre el que quieras que escribamos en el blog? Escríbenos en los comentarios si te gustaría algún post sobre algún tema en concreto de Tableau o Alteryx.