Para la semana 19 de #WorkoutWednesday se tuvo un post invitado, como bien dice Lorna “del único y único Andy Kriebel” (“from the one and only Andy Kriebel”).  

Por supuesto, si es un reto de Andy no debe faltar el uso de Table Calculations. Diversión y Sufrimiento asegurado!

Lorna nos comenta que el desafío fue creado originalmente para el gimnasio de DataSchool, con inspiración de los increíbles ejemplos de uso de #SetActions de Lindsey Poulter.

El ejercicio consiste en:

  • Crear un listado de Estados ordenado por Ventas, en el cual se debe permitir al usuario seleccionar un Estado. Al ser seleccionado, el Estado deberá cambiar de lugar y aparecer en la primera posición del listado y se desplegará con un color diferente al resto de los Estados).
  • Además, se deberán agregar 3 listas parciales con las Ventas de cada Segmento: “Consumer”, “Corporate” y “Home Office”. En cada lista se deberán desplegar sólo 5 renglones, uno por el Estado seleccionado y los otros cuatro con Estados similares.

A continuación, comparto los pasos que seguí.

PASOS PARA LA DEFINICIÓN DEL LISTADO PRINCIPAL

Paso 1: Crear un Set asociado a la variable “State”.

Para crear el Set, se selecciona la variable “State” y con el click derecho elegir la opción de “Create Set” y nombrarlo “State Set”.

Seleccione uno de los Estados en el Set: Por ejemplo: “Pennsylvania

Paso 2: Calcular el Rank único de cada Estado.

En base a las ventas totales del Estado, se calculará un Rank_Unique.

Rank  =

RANK_UNIQUE(SUM([Sales]))

Paso 3: Crear el gráfico principal en una hoja con el nombre “Principal”.

Mover a los estantes:

  • Rows ⬅   “State Set”. Al moverlo se convertirá “IN/OUT (State Set)”

“Rank”. Convertir con el click derecho a Discreto

“State”

  • Text ⬅   SUM(Sales)

El incluir el campo “IN/OUT (State Set)” tiene como objetivo que siempre aparezca el Estado seleccionado por el usuario en la primera posición de la lista. El segundo campo, el de “Rank” nos servirá para ordenar el resto de los Estados de mayor a menor nivel de ventas.

Ocultar el campo de “IN/OUT (State Set)” para que no sea desplegado.

Paso 4: Definir el color.

El renglón del Estado seleccionado tendrá un sombreado azul y el resto de los Estados un color gris claro.

Para su definición utilizaremos el menú de “Format Shading”.

  • Para el sombrado en el “Worksheet” se utilizará el azul claro.
  • Para el sombreado de “Row Banding” se utilizará el gris claro y se ajustará el “Band Size” y el Level como se indica en la siguiente imagen. Estos ajustes nos permitirán que todo el bloque de los Estados que se encuentran OUT en el Set tendrán un sombreado gris.

Recordemos que al crear el Set en el paso 1, seleccionamos un Estado: “Pennsylvania”, el cuál deberá aparecer como primer elemento de la lista y con un sombreado azul.

Picture3

Paso 5: Crear un Set Actions

Recordemos que los “Set Actions” toman un “Set” existente, en este caso “State Set” y actualizan los valores contenidos en ese “Set” en función de la acción de un usuario en la visualización.

Para crear el Set Actions, seleccioné la opción dentro del menú del “Worksheet” y utilicé la siguiente definición:

Picture2

Pruebe la funcionalidad del Set Actions seleccionado otros Estados.

PASOS PARA LA DEFINICIÓN DE LOS LISTADOS POR SEGMENTO

Para cada uno de los Segmentos se deberá listar el Estado seleccionado en la lista principal y otros cuatro Estados similares dentro del segmento. Pero ¿Qué debemos considerar como Estados similares?

  • Rank Similar: Son los dos Estados “Ranked” directamente arriba y debajo del Estado seleccionado (o los cuatro Estados más cercanos en el “Rank” en caso de que el Estado seleccionado esta cerca del Top o del Bottom y no se completen dos Estados arriba o por debajo).
  • Ventas Similares: Se define como los cuatro Estados que tienen las ventas en $ más cercanas a las ventas del Estado seleccionado.

Como ambas opciones pueden ser válidas, dejaré que el usuario seleccione el tipo de proximidad.

Paso 6: Definir parámetro para seleccionar el tipo de proximidad.

Crear parámetro con nombre “Parameter” de tipo booleano:

True = “By Similar Ranked”

False = “By Similar Sales $”

Paso 7: Definir el valor para el Estado Seleccionado de acuerdo a la opción elegida por el usuario en el parámetro (Rank o Ventas).

Utilizaremos la función Window_Max para obtener el valor máximo considerando únicamente los valores del Estado seleccionado.

Value of Selected State  =

IIF([Parameter],

WINDOW_MAX(IIF(ATTR([State Set]), [Rank], NULL)),

WINDOW_MAX(IIF(ATTR([State Set]), SUM([Sales]), NULL)))

Paso 8: Definir el valor para cada uno de los Estados de acuerdo con la opción elegida por el usuario en el parámetro (Rank o Ventas).

De acuerdo con el valor del parámetro se tomará el valor del Rank o el valor de las Ventas en cada uno de los Estados.

Value by State =

IIF([Parameter], [Rank], SUM([Sales]))

Paso 9: Definir el filtro para seleccionar los 5 Estados que deberán ser desplegados.

Este nos ayudará a seleccionar sólo los 5 Estados que se mostrarán en el listado de cada Segmento.

Se requiere calcular un nuevo “Rank Unique” de orden “ascendente” sobre la diferencia en valores absolutos, entre el Valor del Estado seleccionado menos el Valor de cada Estado.

Por último, se deberá cumplir la condición de que el Rank único tenga un valor menor igual a 5, ya que sólo deseamos mostrar 5 Estados en cada lista.

Filter  =

RANK_UNIQUE(ABS([Value of Selected State] – [Value by State]), “asc”) <= 5

A continuación comparto dos ejemplos de los valores involucrado en el cálculo del “Rank Unique” de acuerdo a la selección del usuario de Estado y el valor del Parámetro de tipo de proximidad.

Picture4

En algunos casos los estados seleccionados al aplicar la similitud en el Rank, pueden llegar a coincidir a los seleccionados al aplicar la similitud por Ventas, como en el primer ejemplo. Pero en otras ocasiones dan resultados diferentes, como en el segundo ejemplo.

Paso 10: Crear gráfico para las ventas del segmento “Consumer”.

Mover a los estantes de:

  • Filter ⬅   “Segment” = “Consumer”
  • Columns ⬅   SUM(Sales)
  • Rows ⬅   “Rank” y “State”
  • Color ⬅   “State Set”. Al moverlo se convertirá en “IN/OUT (State Set)”
  • Text ⬅   “SUM(Sales)”
  • Filter ⬅   “Filter” = TRUE

Cada uno de los Table Calculations anidados de “Filter” deberán ser calculados utilizando las dimensiones específicas de “State” y “In / Out State Set”.

Debe realizarse el ajuste en cada uno de los cálculos anidados: “Filter”, “Value of Selected State” y “Rank”

Picture5

Lo mismo para el cálculo de Tabla de “Rank” en el estante de renglones, también se ajustará la definición a cálculos por dimensiones específicas de “State” y “In / Out State Set”.

Paso 11: Copiar el gráfico para las ventas del segmento “Consumer” y cambiar filtro por “Corporate” .

Paso 12: Copiar el gráfico para las ventas del segmento “Consumer” y cambiar filtro por “Home Office” .

Listo!

Link a Tableau Public

Picture1

Para concluir:

Uno de los principales desafíos de esta semana fue lograr decidir cuales Estados son próximos o similares, sin importar si los debo buscar arriba o por abajo del Estado seleccionado o si el Estado seleccionado se encuentra cercano al Top o al Bottom de la lista.

La clave para la solución fue la utilización de la función “Rank_Unique”, la cual, recordemos, que para valores idénticos asigna Ranks diferentes y únicos como su nombre lo indica.

Pero ¿Cuál es el valor que debemos utilizar dentro de la función “Rank_Unique”?

La diferencia en valores absolutos (es decir, siempre valores positivos) entre el valor del Estado Seleccionado vs. el valor de cada Estado.

Muchas gracias y si tiene alguna pregunta sobre el post, no dudes en ponerte en contacto conmigo en Twitter (@rosariogaunag)

¡Saludos!

Rosario Gauna

 

Advertisements