Tableau Software : Workout Wednesday n°48 (2019)

Cet article est inspiré par le défi de la semaine n°48 (2019) de Workout Wednesday. Les notions de Parameter, Dynamic Set et LOD Expressions sont abordées.

workout-wednesday.com propose chaque semaine un défi de data visualisation à relever. Les niveaux sont variés et les solutions sont mises à disposition, ce qui en fait une très bonne ressource d'apprentissage et de perfectionnement.

Le défi traité dans cet article consiste à recréer un bar chart avec agrégation automatique des petites valeurs dans une catégorie "autres". C'est un exercice assez simple mais qui requière de connaitre et de combiner plusieurs fonctionnalités de Tableau.

Voici le résultat que nous voulons obtenir :

Dynamic Bar Chart

Ce graphique utilise la source de données superstore 2019.12 mise à disposition par Tableau. Chaque barre représente les ventes (Sales) d'un pays (State) raportées aux ventes totales. Les pays minoritaires (avec un taux de contribution inférieur au paramètre Aggregation Level) sont regroupés sous le nom "Other States".

Voyons maintenant pas-à-pas comment atteindre ce résultat.

Étape n°1 : LOD Expression

La première étape consiste à calculer pour chaque pays son taux de contribution aux ventes globales.

taux de contribution du pays X = (ventes dans le pays X) / (ventes mondiales)

Un moyen simple et rapide d'obtenir ce résultat est d'appliquer sur le champ Sales l'opération % of Total du menu Quick Table Calculation. Malheureusement les calculs de table ne sont pas utilisables dans les champs calculés (ce dont nous aurons besoin par la suite), nous allons donc créer un champ calculé nommé % of total en utilisant la formule suivante :

LOD Expression

Ceci est une LOD expression. On la reconnait à la présence des crochets autours de l'agrégation {SUM([Sales])}.

« Les expressions LOD vous permettent de déterminer les niveaux de détail (c'est-à-dire les dimensions) utilisés dans un calcul, sans devoir les placer dans votre visualisation. Vous pouvez définir le niveau de détail auquel le calcul sera exécuté, indépendamment du niveau de détail de votre visualisation. »

On peut définir le niveau de détail d'un champ calculé en l'encadrant avec des crochets et, optionnellement, en ajoutant l'un des mots-clés FIXED, INCLUDE ou EXCLUDE. Dans le cas où aucun mot-clé n'est spécifié, le comportement par défaut est d'effectuer le calcul d'agrégation en utilisant la table entière comme partition.

Dans notre exemple, l'expression {SUM([Sales])} renvoie la somme totale des ventes, tous pays confondus. À noter qu'elle renvoie une valeur par ligne et n'est donc pas considérée comme une agrégation. C'est pourquoi il est nécessaire d'utiliser la fonction MAX pour transformer le résultat en agrégation.

On peut vérifier que le résultat est identique à celui obtenu avec l'opération % of Total du menu Quick Table Calculation :

LOD Expression

Étape n°2 : Paramètre

Afin de fixer le seuil de contribution aux ventes en dessous duquel les pays devront être agrégés dans la catégorie Other States, on créer un paramètre nommé Aggregation Level qui permettra à l'utilisateur de choisir le niveau d'agrégation désiré.

LOD Expression

Le type du paramètre, son affichage et sa plage de valeur sont simples à déterminer puisqu'il s'agit d'un pourcentage. Une fois le paramètre créé, on peut l'afficher dans la visualisation (clique droit sur le paramètre puis Show Parameter Control). Un slider apparaîtra et l'utilisateur pourra ainsi modifier la valeur du paramètre.

Parameter

Étape n°3 : Ensemble dynamique

Nous allons créer un ensemble dynamique pour distinguer les pays minoritaires (avec une participation inférieure au seuil Aggregation Level). Un ensemble dynamique sépare le jeu de données en deux sous-ensembles IN et OUT sur la base d'une formule booléenne.

En plus de séparer le jeu de données en deux, les ensembles ont d'autres avantages :

  • Ils standardisent la notion d'ensemble dans Tableau. Tout comme en programmation, utiliser des fonctions standard permet de rendre son travail rapidement compréhensible par n'importe quel autre utilisateur. Il est donc préférable de les utiliser par défaut et de s'en écarter uniquement en cas de besoin très spécifique.
  • Ils donnent accès aux opérations ensemblistes telles que l'union, l'intersection et l'exclusion.

Les ensembles peuvent être définis de plusieurs manières :

  • Les ensembles fixes :
    • Directement en sélectionnant depuis la visualisation les points à ajouter à l'ensemble.
    • Pour une dimension donnée, en sélectionnant la liste des valeurs qui doivent être ajoutées à l'ensemble.
  • Les ensembles dynamiques :
    • Pour une dimension donnée, avec une condition ou une formule. Cette méthode est de loin la plus puissante des trois et permet de développer des analyses complexes.

Pour notre exemple, créons un ensemble dynamique nommé Biggest States Set en utilisant la formule suivante :

Create set with formula

On retrouve le champ calculé [% of total] que nous avons défini précédemment ainsi que le paramètre Aggregation Level.

Chaque fois que l'utilisateur modifiera la valeur du paramètre Aggregation Level, l'ensemble sera recalculé. Si l'utilisateur augmente le seuil, les pays qui passent sous le seuil seront ajoutés à l'ensemble. À l'inverse si l'utilisateur diminue la valeur du seuil, les pays qui repassent au-dessus du seuil seront retirés de l'ensemble.

Étape n°4 : Agréger les pays minoritaires

Créons un champ calculé qui conserve le nom du pays si ce dernier est dans l'ensemble Biggest States Set et qui sinon le remplace par la valeur "Other State".

Agregate states using a calculated field

Étape finale

Nous disposons maintenant de toutes les pièces du puzzle pour réussir ce défi. Il ne reste plus qu'à agencer correctement nos champs dans la zone de visualisation afin d'obtenir le résultat final :

Expected result

  • Placez en ligne le champ Biggest States.
  • Placez en colonne le champ Sales et appliquez l'opération % of Total du menu Quick Table Calculation.
  • Utilisez le champ Biggest States Set colorier les pays en fonction qu'ils soient inclus ou non dans l'ensemble.
  • Créez une ligne de référence qui prend la valeur du paramètre Aggregation Level.
  • Triez les lignes en fonction d'un champ Sales Biggest States (que vous devrez créer en utilisant la formule suivante : IIF([Biggest States Set], [Sales], 0)).

À retenir

Les notions importantes traitées dans cette article :

  • LOD Expressions
  • Parameters
  • Dynamic sets