Tableau Hacks: ¿Cómo saber si un set está completo o a su máxima capacidad?

O lo que es lo mismo: ¿cómo saber si un set tiene DENTRO a todos los elementos disponibles? La respuesta es obvia: viendo si tiene tantos elementos como el máximo permitido. No nos confundamos; los sets no tienen límite de longitud (puedes tener un set de 1 elemento y otro de 100) salvo la propia cantidad de elementos disponibles. Siempre partimos de una dimensión (ej: Dimension 1) para crear un set, que se llamará por defecto Dimensión 1 Set. Las dimensiones, al ser discretas, tienen un número exacto de elementos únicos que se puede obtener con el conteo de valores distintos.

Hasta aquí bien. Aunque nosotros no nos quedaremos en la teoría. Vamos a tener que utilizar Level of detail (LOD, que si no os suena os recomiendo que le echéis un vistazo a la referencia antes de continuar). Volviendo a la lógica subyacente de este problema, lo que nosotros queremos plantear sería algo así: Conteo de elementos dentro del set = Máximo de categorías disponibles. Resultando en un booleano (True/False) que forma que Verdadero indicara que la igualdad es afirmativa.

El Máximo de categorías disponibles se consigue con el cálculo COUNT( Dimension 1 ). ¿Pero, y el Conteo de elementos dentro del set, cómo sabemos cuantos hay en total? Os voy a soplar un truco: en Tableau, también se pueden usar los sets como variables booleanas. El campo calculado [Dimension 1 Set] retornará, para cada elemento, True si está DENTRO del set y False si está FUERA. Aunque no lo parezca, ya casi tenemos todo lo que necesitamos.

Queremos aplicar ese mismo razonamiento a otro nivel superior, al del set como conjunto en vez de ir elemento por elemento. ¿Cómo lo hacemos? Pues usando LOD, como ya os adelanté al principio. Sabiendo que las variables booleanas se pueden convertir a números enteros, simplemente haciendo INT(Variable Booleana) y que el resultado será 1 para True y 0, para False, podemos deducir que, si el set está completo, al máximo de su capacidad, todos los elementos del mismo darán 1 en ese cálculo. Y, por tanto, la suma de todos esos 1 será igual al Máximo de categorías disponibles para dicha dimensión. La mejor forma de abstraernos del nivel de detalle “elemento” al nivel “conjunto” es utilizando FIXED, para agregar el resultado del cálculo al nivel de toda la vista (de verdad, si no os habéis mirado el tema LOD, es el momento).

{ COUNT( [Category] ) = SUM( INT( [Category Set] )) }

* Aclaración: cuando FIXED va fijado al contexto entero, no hace falta seguir la estructura { FIXED [Dimension]: Cálculo }; basta con ponerla entre corchetes.

¡Y ya está! Guardamos esa expresión en un campo calculado Set Completo y si retorna True, sabremos que está al máximo de su capacidad, y si, por el contrario, retorna False, sabremos que no están dentro del set todas las categorías que podrían estar.