Ordre des opérations Tableau

L'ordre des opérations dans Tableau, parfois appelé encours de requêtes, désigne l'ordre dans lequel Tableau exécute diverses actions. Les actions sont aussi appelées opérations. De nombreuses opérations appliquent des filtres, ce qui signifie que, lorsque vous créez une vue et ajoutez des filtres, ces filtres s'exécutent toujours dans l'ordre défini par l'ordre des opérations.

Visionner une vidéo : pour une illustration des concepts démontrés dans Tableau, visionnez Comprendre l'ordre des opérations Tableau(Le lien s’ouvre dans une nouvelle fenêtre), une présentation vidéo gratuite de 60 minutes (en anglais).

Cette rubrique présente deux scénarios de mise à jour d'une vue pour corriger les problèmes résultant de l'ordre des opérations : conversion d'un filtre de dimension en un filtre contextuel et conversion d'un calcul de table en une expression LOD FIXED.

À propos de l'ordre des opérations (à savoir l'encours des requêtes)

Vous pouvez parfois anticiper que Tableau exécutera les filtres dans un ordre donné, mais l'ordre des opérations impose que les opérations soient exécutées dans un ordre différent, ce qui peut entraîner des résultats inattendus. Dans ce cas, vous pouvez parfois changer l'ordre d'exécution des opérations dans l'encours.

L'ordre des opérations Tableau comprend les éléments suivants, de haut en bas.

Remarque : dans l'ordre des opérations, le filtre de date la plus récente s'applique globalement au classeur, tandis que les filtres contextuels s'appliquent par feuille de calcul. La date la plus récente est déterminée juste après l'ouverture du classeur pour la première utilisation, après les filtres de source de données, mais avant les filtres contextuels. À ce point, la date est définie, mais la date la plus récente préconfigurée est utilisée comme filtre de dimension.

Exemple 1 : Convertir un filtre de dimension en filtre contextuel

Cet exemple et l'exemple suivant utilisent la source de données Sample – Superstore fournie avec Tableau Desktop.

Dans cet exemple, la vue répond à la question suivante :Qui sont les 10 principaux clients, par total des ventes, à New York City ?

La vue contient deux filtres de dimension, un que vous créez dans l'onglet Général dans la boîte de dialogue Filtres, et l'autre dans l'onglet n maximum. Le problème est que ces filtres s'exécutent simultanément, alors que vous souhaiteriez que le filtre général soit appliqué avant le filtre n maximum de manière à ce quel le filtre n maximum agisse sur les résultats qui ont déjà été filtrés par le filtre général. La solution consiste à redéfinir l'un des filtres comme filtre contextuel afin qu'un ordre de priorité clair soit établi.

Voici la procédure de création de cette vue.

  1. Faites glisser Sales sur Colonnes.

  2. Faites glisser City et [Nom du client] sur Lignes.

  3. Faites glisser City à nouveau depuis le volet Données, cette fois sur Filtres. Sur l'onglet Général dans la boîte de dialogue Filtre, configurez le filtre de manière à n'afficher qu'une seule valeur : New York City. Faites-le en cliquant sur Aucun puis en choisissant New York City.

    Ceci crée une filtre de dimension général.

  4. Cliquez sur le bouton Trier dans l'ordre décroissant () dans la barre d'outils. Votre vue devrait ressembler à celle-ci :

    Notez les quelques premiers noms dans la liste : Ashbrook, Fuller, Vernon, etc.

  5. Faites maintenant glisser [Nom du client] depuis le volet Données vers Filtres, et créez un filtre Top 10 pour afficher uniquement les 10 premiers clients par total de ventes :

    Après avoir appliqué ce second filtre, la vue semble correcte, mais notez que les noms affichés ne sont plus les mêmes qu'auparavant :

    Qu'est-il arrivé à Peter Fuller, qui était avant à la seconde place ? L'objectif était de présenter les 10 principaux clients à New York City, mais la vue actuelle présente en fait les 10 principaux clients globaux.

    Le problème est que les filtres maximum et les filtres de dimension généraux sont appliqués simultanément. Ce sont tous deux des filtres de dimension, et ils apparaissent au même endroit dans l'ordre des opérations Tableau :

    La solution consiste à ajouter le filtre de dimension général (dans City) au contexte, c'est-à-dire en le transformant en un filtre contextuel qui est exécuté avant tout autre filtre que vous créez dans une feuille de calcul.

    Pour plus de détails, voir Améliorer les performances de la vue avec les filtres contextuels.

  6. Faites un clic droit sur City dans l'étagère Filtres (Ctrl+clic sur un Mac) et choisissez Ajouter au contexte. En tant que filtre contextuel, ce filtre prévaut désormais sur le filtre de dimension, si bien que la vue affiche à présent ce qu'elle est supposée afficher :

Exemple 2 : Convertir un calcul de table en une expression de niveau de détail FIXED

Dans cet exemple, la vue répond à la question suivante : quel est le pourcentage du total des ventes par sous-catégorie de produits ?

La vue contient un filtre de dimension et un calcul de table. Tableau applique le filtre de dimension avant d'exécuter le calcul de table. Pour inverser l'ordre de ces opérations, utilisez une expression de niveau de détail FIXED au lieu d'un calcul de table.

Voici la procédure de création de cette vue.

  1. Dans une nouvelle feuille de calcul, faites glisser Sales sur Colonnes.

  2. Faites glisser Sous-catégorie sur Lignes.

  3. Cliquez avec le bouton droit de la souris sur SUM(Sales) dans Colonnes et sélectionnez un calcul de table rapide – Pourcentage du total.

  4. Cliquez sur le bouton Trier dans l'ordre décroissant () sur la barre d'outils pour trier les catégories du plus au moins.

  5. Cliquez sur le bouton Afficher les étiquettes de repère () dans la barre d'outils pour afficher les valeurs de mesures dans la vue.

    Votre vue devrait ressembler à celle-ci :

    Notez les pourcentages pour les quelques premiers éléments : 14.37%, 14.30%, etc.

  6. Faites un clic droit sur Sub-Category dans Lignes et choisissez Afficher le filtre.

  7. Désélectionnez la coche pour Chairs dans ce filtre.

    Dans la vue, les pourcentages sont maintenant différents. Le pourcentage le plus élevé dépasse désormais 16%. Dans certains cas, ce peut être précisément le résultat que vous souhaitez (c'est-à-dire que les pourcentages sont recalculés lorsque vous utilisez le filtre rapide). Mais dans d'autres cas, vous pouvez souhaiter que les pourcentages restent fixes même si vous filtrez des éléments pour les inclure ou les exclure. C'est ce que nous recherchons dans ce cas.

    Dans l'ordre des opérations, un filtre de dimension est appliqué avant un calcul de table :

    Pour que Tableau calcule les pourcentages avant d'appliquer le filtre rapide, vous pouvez créer une expression de niveau de détail FIXED, puis l'utiliser au lieu du calcul de table.

    Les expressions de niveau de détail FIXED calculent une valeur en utilisant les dimensions spécifiées sans faire référence aux dimensions de la vue. Dans ce cas, vous l'utiliserez pour établir les pourcentages pour les diverses sous-catégories, des pourcentages qui ne seront pas affectés par votre filtre de dimension. Pourquoi ? Parce que les expressions de niveau de détail FIXED sont calculées avant l'application des filtres de dimension.

    Pour plus d'informations, consultez Créer des expressions LOD dans Tableau.

  8. L'expression de niveau de détail FIXED doit diviser la somme de Sales (pour une valeur de mesure spécifique) par la somme totale de Sales pour la vue. Étant donné que le numérateur est agrégé, le dénominateur doit également l'être, si bien que l'expression que vous écrivez est la suivante :

    SUM([Sales])/SUM({FIXED : SUM([Sales])})

  9. Enregistrez cette expression en tant que FixedSumOfSales puis faites-la glisser depuis le volet Données vers Colonnes, en la déposant à droite du champ SUM(Sales) qui utilise ce calcul de table. (Conservez-les tous deux dans la vue à des fins de comparaison.) Voici ce à quoi ressemble maintenant votre vue :

    Les nombres de pourcentage sur le graphique à droite sont désormais cohérents, quels que soient les champs que vous sélectionnez ou ne sélectionnez pas avec le filtre rapide. Il ne vous reste plus qu'à formater les valeurs FixedSumOfSales pour les afficher en tant que pourcentages.

  10. Cliquez avec le bouton droit de la souris sur FixedSumOfSales dans Colonnes and choisissez Formater. Dans le volet Formater, choisissez Nombres puis Pourcentage :

    Ceci donne la vue finale :

    Lorsque vous sélectionnez ou désélectionnez des éléments dans le filtre rapide Sub-Category, les pourcentages dans le graphique à barres sur la gauche changent, mais les pourcentages dans le graphique à barres sur la droite ne changent pas.

Merci de vos commentaires !