Par défaut, tous les filtres que vous définissez dans Tableau sont calculés indépendamment. Cela signifie que chaque filtre accède à toutes les lignes de votre source de données sans tenir compte des autres filtres. Toutefois, vous pouvez définir un ou plusieurs filtres de catégorie en tant que filtres contextuels pour la vue. Les filtres contextuels peuvent être considérés comme des filtres indépendants. Tous les autres filtres que vous définissez sont des filtres dépendants car ils traitent uniquement les données qui passent à travers le filtre contextuel.

Vous pouvez créer un filtre contextuel pour :

  • Forcer un filtre de manière à ce qu'il soit appliqué en premier.
  • Créez un filtre numérique dépendant ou un filtre N premiers. Vous pouvez définir un filtre contextuel pour inclure uniquement les données qui vous intéressent, puis définir un filtre numérique ou un filtre N premiers.

Par exemple, supposons que vous soyez responsable des produits pour petit-déjeuner dans une grande chaîne de supermarchés. Votre objectif est de trouver les 10 produits pour petit-déjeuner les plus rentables pour tous les magasins. Si la source de données est très importante, vous pouvez définir un filtre contextuel pour inclure uniquement les produits pour petit-déjeuner. Vous pouvez ensuite créer un filtre 10 maximum par profit en tant que filtre dépendant, qui traitera uniquement les données passant à travers le filtre contextuel.

Créer des filtres contextuels

Pour créer un filtre contextuel, sélectionnez Ajouter au contexte dans le menu contextuel d'un filtre de catégorie existant. Le contexte est calculé une fois pour générer la vue. Tous les autres filtres sont ensuite calculés par rapport au contexte. Les filtres contextuels :

  • apparaissent en haut de l'étagère des filtres ;
  • sont identifiés par une couleur grise sur l'étagère Filtres ;
  • ne peuvent pas être réorganisés sur l'étagère.

Comme illustré ci-dessous, la dimension Ship Mode est destinée à être le contexte d'une vue. Le filtre Region est calculé uniquement à partir des données passant à travers Ship Mode.

Vous pouvez modifier un filtre contextuel en :

  • supprimant le champ de l'étagère des filtres – si d'autres filtres contextuels restent sur l'étagère, un nouveau contexte est calculé ;
  • modifiant le filtre – un nouveau contexte est calculé chaque fois que vous modifiez un filtre contextuel ;
  • sélectionnant Supprimer du contexte – le filtre reste sur l'étagère en tant que filtre de standard. Si d'autres filtres contextuels restent sur l'étagère, un nouveau contexte est calculé.

Accélérer les filtres contextuels

Pour améliorer les performances des filtres contextuels, en particulier sur les sources de données volumineuses, suivez ces règles générales.
  • Il est beaucoup plus utile d'utiliser un filtre contextuel qui réduit de façon significative la taille de l'ensemble de données plutôt que d'appliquer plusieurs filtres contextuels.
  • Terminez la modélisation de toutes vos données avant de créer un contexte. Les modifications du modèle de données, comme la conversion de dimensions en mesures, nécessitent un nouveau calcul du contexte.
  • Définissez les filtres nécessaires pour le contexte et créez celui-ci avant d'ajouter des champs à d'autres étagères. Cela permet d'accélérer l'exécution des requêtes lorsque vous déplacez des champs sur d'autres étagères.
  • Si vous souhaitez définir un filtre contextuel sur une date, vous pouvez utiliser une date continue. Toutefois, les classes de dates comme YEAR(date) ou les filtres contextuels sur des dates discrètes sont très utiles.

Remarque : les filtres contextuels peuvent nuire à l'amélioration des performances des requêtes lorsque vous utilisez l'option Supposer l'intégrité référentielle dans le menu Données de la source de données. Pour plus d'informations, voir Estimation de l’intégrité référentielle pour les jointures.

Exemple : créer des filtres contextuels

Cet exemple détaille la création d'un filtre contextuel. Vous allez commencer par filtrer une vue de manière à afficher les 10 produits les plus vendus. Vous allez ensuite créer un filtre contextuel sur une catégorie de produit afin d'afficher uniquement les 10 produits mobiliers les plus vendus.

  1. Utilisez la source de données Sample - Superstore pour créer la vue initiale affichée ci-dessous. La vue montre les ventes de toutes les sous-catégories triées de la plus vendue à la moins vendue.

  2. Créez un filtre 10 maximum pour afficher uniquement les 10 produits les plus vendus. Vous pouvez créer ce filtre en faisant glisser le champ Sub-Category vers l'étagère Filtres. Dans la boîte de dialogue Filtrer, accédez à l'onglet Haut et définissez un filtre 10 maximum par somme des ventes. Pour en savoir plus sur la définition d'un filtre n maximum, consultez Filtrer des données dans vos vues(Le lien s’ouvre dans une nouvelle fenêtre).

  3. Lorsque vous cliquez sur OK, vous constatez que la vue est filtrée et n'affiche que les 10 sous-catégories de produits les plus vendues.

  4. Ajoutons maintenant un autre filtre pour afficher uniquement les produits mobiliers. Faites glisser le champ Category sur l'étagère Filtres et sélectionnez Furniture. Lorsque vous avez terminé, cliquez sur OK.

    La vue est filtrée mais, au lieu de 10 produits, seuls 3 sont affichés. Cela est dû au fait que, par défaut, tous les filtres sont évalués séparément et que la vue affiche l'intersection des résultats. Cette vue montre donc que seuls trois des dix produits les plus vendus sont des produits mobiliers.

  5. Pour connaître les 10 produits mobiliers les plus vendus, il faut transformer le filtre Category en filtre contextuel. Sur l'étagère des filtres, cliquez avec le bouton droit de la souris sur le champ et sélectionnez Ajouter au contexte.

  6. Le filtre est signalé comme filtre contextuel et la vue se met à jour pour afficher les 10 produits mobiliers les plus vendus. Pourquoi pas 10 ? Parce que seules quatre des sous-catégories contiennent du mobilier. Mais nous savons déjà que le filtre 10 maximum est évalué par rapport aux résultats de ce contexte.

Merci de vos commentaires !