En este articulo se explicaran las expresiones de nivel de detalle, tambien llamadas LOD, de una manera practica para poder asi comprender uno de los temas que mas dificiles pueden resultar al comenzar a trabajar con Tableau.

Table Of Contents

¿Que son las expresiones de nivel de detalle?

Las expresiones de nivel de detalle nos permiten realizar calculos sobre el nivel de granularidad que deseamos, existen tres tipos de funciones LOD: INCLUDE, EXCLUDE y FIXED.

Recordatorio: Granularidad de datos hace referencia al nivel de detalle que posee un dato o estructura de datos. Por ejemplo, en datos de ventas la granularidad podria ser diaria, si se tiene el detalle de todas las ventas por dia, o semanal, si se registra esta informacion semana a semana.

Expresiones LOD: Ejemplo de un caso de uso

Antes de explicar cada una de estas funciones a detalle veamos un ejemplo que nos permita visualizar la utilidad de este tipo de expresiones.

Durante este articulo todos los ejemplos seran llevados a cabo utilizando la fuente de datos de Superstore, proporcionada por Tableau.

Para este primer ejemplo arrastremos la medida correspondiente a la suma de Cantidades a la seccion de Columnas y la dimension Categoria a la seccion de Filas, obteniendo el siguiente grafico de barras con granularidad por categoria.

Suma de cantidades por categoria.
Suma de cantidades por categoria.

Si a continuacion agregamos la dimension Sub-Categoria sin eliminar la dimension Categoria de nuestra vista podremos ver que estamos modificando el nivel de detalle original, haciendolo mas granular, ya que ahora el detalle esta presentado de manera minima por sub-categoria. Como se puede observar en la imagen, obtendremos una vista con la suma de cantidades por sub-categoria, presentado como un grafico de barras.

Suma de cantidades por sub-categoria.
Suma de cantidades por sub-categoria.

Muy bien, supongamos que ahora queremos tener en la misma vista la suma de cantidades por categoria (imagen 1), y la suma de cantidades por sub-categoria (imagen 2), ambas al mismo tiempo. Aca es donde entran en juego las expresiones de nivel de detalle, o LOD.

Utilizando la expresion de nivel de detalle EXCLUDE podremos excluir la dimension de sub-categoria del calculo y asi obtener una medida con la suma de cantidades por categoria en la misma vista, sin alterar la granularidad actual (sub-categoria).

Un ejemplo practico de este escenario presentado seria por ejemplo calcular el porcentaje del total que representa la suma de cantidades de cada sub-categoria dentro de la suma total de una categoria.

Mas adelante se explicara a detalle esta y cada una de las expresiones de nivel de detalle, pero por ahora podemos decir que la sintaxis de la expresion se ve asi:

{ EXCLUDE [Sub-Category] : SUM([Quantity]) }

Suma de cantidades por categoria y sub-categoria utilizando LOD.
Suma de cantidades por categoria y sub-categoria utilizando LOD.

FIXED

Las expresiones de nivel de detalle FIXED calculan la medida deseada utilizando las dimensiones especificadas para la granularidad, ignorando las dimensiones y filtros presentes en la vista.

Su sintaxis es:

{ FIXED [DIMENSION] : [MEDIDA] }

Ahora veamos un ejemplo donde se ponga en practica esta expresion:

Supongamos que queremos conocer la cantidad de productos vendidos por Estado sin tener en cuenta la ciudad o cualquier otro nivel de agregacion presente en la vista.

Para lograr esto nuestro primer acercamiento puede ser crear una vista como la que se muestra a continuacion, pero rapidamente nos daremos cuenta de que Tableau detecta la agregacion por ciudades y nos muestra la cantidad de productos vendidos por Ciudad, siendo esto lo contrario a lo que buscamos, que es el numero de productos vendidos por Estado.

Suma de cantidades vendidas por ciudad.
Suma de cantidades vendidas por ciudad.

Para solucionar esto deberemos crear un nuevo campo calculado y hacer uso de la expresion de nivel de detalle FIXED de la siguiente manera.

{ FIXED [State] : SUM([Quantity]) }

Y si ahora arrastramos el nuevo campo calculado a nuestra vista podremos ver que ahora obtendremos la cantidad de productos vendidos por Estado sin tener en cuenta la ciudad o cualquier otro tipo de nivel de detalle presente en la vista.

Como tambien se puede observar en el ejemplo interactivo abajo, los filtros tampoco afectaran al campo calculado que contiene la expresion de nivel de detalle.

INCLUDE

Las expresiones de nivel de detalle INCLUDE se utilizan para calcular una medida utilizando las dimensiones especificadas, ademas de las que ya se encuentran en la vista.

Su sintaxis es:

{ INCLUDE [DIMENSION] : [MEDIDA] }

Ahora veamos un ejemplo donde se ponga en practica esta expresion:

Supongamos que queremos saber el promedio de las ventas por Ciudad, para cada una de las categorias de productos disponibles.

En un principio esta tarea puede sonar dificil de implementar, pero se trata de un escenaria bastante comun que se soluciona creando un nuevo campo calculado con tan solo una expresion LOD.

AVG({ INCLUDE [City] : SUM([Sales]) })

A continuacion solo resta arrastrar los campos para generar una vista similar a esta:

Promedio de ventas por ciudad (para cada una de las categorias).
Promedio de ventas por ciudad (para cada una de las categorias).

Con este resultado podriamos decir que, por ejemplo, las ciudades gastan en promedio $1.976 en productos de la categoria “Furniture”.

Y asi quedaria el resultado final interactivo:

EXCLUDE

Las expresiones de nivel de detalle EXCLUDE declaran que dimensiones omitir del nivel de detalle de la vista.

Su sintaxis es:

{ EXCLUDE [DIMENSION] : [MEDIDA] }

Ahora veamos un ejemplo donde se ponga en practica esta expresion:

Supongamos que queremos saber la fecha de la primer venta en una ciudad, y en la misma vista tambien conocer la primer venta en una ciudad para cada una de las categorias de producto.

Para esto debemos omitir el nivel de detalle de la dimension de categoria de producto, para asi poder obtener la primer venta por ciudad. Esto se logra haciendo uso de la expresion de nivel de detalle EXCLUDE, como veremos aca abajo.

Crearemos dos campos calculados, uno para obtener la primer venta por ciudad (excluyendo la categoria):

{ EXCLUDE [Category] : MIN([Order Date]) }

Y otro para obtener la primer venta, utilizando la granularidad o nivel de detalle que tenga la vista en ese momento:

MIN([Order Date])

Y asi quedaria el resultado final interactivo:

De esta manera podriamos decir que, por ejemplo, la primera venta en la ciudad de Akron fue el dia 18/05/2020, sin embargo la primera venta de un producto de tecnologia en esa ciudad fue el dia 14/02/2021.

Enlaces recomendados

Crear expresiones de nivel de detalle en Tableau - Tableau

Las 15 expresiones LOD principales - Tableau