Partager via


Utiliser le comportement du filtre de valeur (préversion)

Les options de comportement du filtre de valeur dans Power BI vous permettent d’influencer le mécanisme de filtrage automatique présent dans DAX qui se produit lorsque plusieurs colonnes de la même table sont filtrées. Ce comportement est appelé « existe automatiquement ».

Qu’est-ce que le comportement du filtre de valeur ?

Lorsque plusieurs colonnes de la même table sont filtrées, DAX comprend que probablement pas toutes les combinaisons de valeurs entre ces colonnes sont valides et, par conséquent, elle exclut automatiquement les combinaisons non valides. Le moteur DAX a généré un filtre de valeurs coalesced qui retourne non seulement des combinaisons valides, mais affecte également les calculs mesurés. Le paramètre de comportement du filtre de valeur vous permet de modifier ce comportement dans votre modèle sémantique. Vous pouvez décider si vous souhaitez désactiver les filtres de valeurs de fusion et activer les filtres de valeurs indépendants à la place. L’activation des filtres de valeurs indépendants en définissant le paramètre de comportement du filtre de valeur sur Indépendant (voir plus loin dans cet article) entraîne la persistance de plusieurs filtres sur la même table au lieu du moteur DAX combinant ces filtres en un seul.

Présentation du comportement du filtre de valeur

Lorsque vous filtrez plusieurs colonnes sur la même table, le comportement actuel du filtre de valeurs par défaut prend ces filtres et les combine en un seul, compte tenu uniquement des combinaisons qui existent. Tenez compte des deux colonnes suivantes sur la même table :

  • Année, qui contient des valeurs telles que « 2023 ».
  • Mois, qui contient des valeurs telles que « Janvier 2024 ».

Si vous filtrez à la fois sur Year et Month, étant donné que ces colonnes se trouvent sur la même table, le comportement du filtre de valeur combine les filtres en un, mais seules les combinaisons qui existent sont prises en compte. La combinaison du mois de janvier 2024 avec l’année 2023 n’existe pas et ne serait pas incluse dans le filtre. Toutefois, il existe des situations dans lesquelles les résultats sont surprenants.

Examinons un exemple, où nous avons un catalogue affichant la disponibilité des couleurs pour les produits par année. Le fabricant de ces produits a expérimenté la fabrication de produits dans différentes couleurs tout au long des années :

Capture d’écran du tableau montrant les couleurs du produit entre 2022 et 2024.

Nous avons trois produits disponibles dans différentes couleurs au fil des ans. Notez comment il n’y a pas de produits rouges proposés en 2024. Cela va être important un peu plus tard. Maintenant, nous allons compter le nombre de produits en ajoutant la mesure suivante :

Number of Products = COUNTROWS( 'Catalog' )`

La matrice suivante montre le nombre de produits disponibles dans différentes couleurs par année : Capture d’écran d’une matrice montrant le nombre de produits par année et par couleur.

Maintenant, ajoutons une autre mesure pour calculer le nombre total de produits pour toutes les années :

Number of Products All Years = CALCULATE ( [Number of Products], ALL ( 'Catalog'[Year] ) )

Nous allons mettre ces mesures côte à côte et filtrer à l’année 2023 et seulement les couleurs bleues et rouges (donc pas de noir). Vous pouvez voir le nombre de produits est de 4 et le nombre de produits sur toutes les années pour ces deux couleurs est de 6 :

Capture d’écran d’un tableau montrant l’année, le produit et la couleur. Il existe deux segments, un défini sur Year est égal à 2023 et un défini sur Couleur est Bleu et Rouge. La mesure Number of Products retourne 4 et la mesure Number of Products All Years retourne 6.

Si nous changeons l’année en 2024, nous nous attendons à ce que la mesure « Nombre de produits » retourne 2, car il n’y a que deux produits bleus en 2024 et il n’y a pas de produits rouges dans cette année. En plus de cela, nous nous attendons à ce que le nombre de produits pour toutes les années ne change pas, car, après tout, il est censé être calculé sur toutes les années. Toutefois, le « nombre de produits pour toutes les années » passe de 6 à 5 :

Capture d’écran d’un tableau montrant l’année, le produit et la couleur. Il existe deux segments, un défini sur Year est égal à 2024 et un défini sur Couleur est Bleu et Rouge. La mesure Number of Products retourne 2 et la mesure Number of Products All Years retourne 5.

Le nombre de produits de toutes les années devrait encore être de 6, pas 5. Ce que nous voyons ici est le comportement du filtre de valeur en action : il combine des filtres sur la même table, en supprimant les combinaisons qui n’existent pas. Les filtres sont Year = 2024 et Color = Blue ou Red. Étant donné que ces deux filtres se trouvent sur la même table, ces filtres sont combinés en un seul filtre qui filtre uniquement les combinaisons qui existent. Étant donné qu’il n’existe aucun produit rouge en 2024, le filtre appliqué est Year = 2024 et Color = Blue. Par conséquent, le nombre de produits pour toutes les années compte désormais seulement le nombre de produits bleus, et non les produits bleus ou rouges. Cela retourne 5, car vous pouvez confirmer dans la table.

Influence du comportement du filtre de valeur

Vous pouvez contrôler si vous souhaitez ce comportement dans votre modèle sémantique, à l’aide du paramètre de comportement du filtre valeur sur votre modèle sémantique dans le volet propriétés de l’affichage du modèle :

Capture d’écran du volet propriétés dans l’affichage du modèle. Les options de comportement du filtre de valeur sont mises en surbrillance.

Trois options sont disponibles :

  • Automatique : il s’agit du paramètre par défaut et active actuellement le comportement coalesced. Lorsque nous encapsulons cette préversion, les nouveaux modèles définis sur Automatic utiliseront Indépendant, il sera annoncé à ce moment-là.
  • Indépendant : cela force les filtres sur la même table à conserver séparément. Après avoir défini le paramètre « Comportement du filtre valeur » sur Indépendant, le nombre total de produits pour toutes les années retourne 6 comme prévu (voir ci-dessous).
  • Coalesced : force le comportement du filtre de valeur à activer pour le modèle sémantique et entraîne la combinaison des filtres sur la même table en une seule. Le nombre de produits pour toutes les années dans notre exemple continue à 5.

Le tableau suivant montre l’effet de ce paramètre sur notre exemple : | Paramètre de comportement du filtre de valeur | Filtres appliqués dans l’exemple | Résultat de l’exemple de mesure | | --- | --- | --- | |Automatique |Année = 2024,
Couleur = Bleu|5| | |Indépendant|Année = 2024,
Couleur = Bleu ou Rouge|6| |Coalesced|Année = 2024,
Couleur = Bleu|5|

Si vous définissez le comportement du filtre Valeur sur Automatique, cela signifie qu’il est égal à Coalesced pour l’instant, mais il sera basculé vers Independent pour les nouveaux modèles sémantiques à l’avenir. Si vous définissez le comportement du filtre Valeur sur Indépendant, le nombre de produits pour tous les retours 6, comme prévu, étant donné que les filtres sont Year = 2024 et Color = Blue ou Red et ne sont plus combinés :

Capture d’écran d’un tableau montrant l’année, le produit et la couleur. Il existe deux segments, un défini sur Year est égal à 2024 et un défini sur Couleur est Bleu et Rouge. La mesure Number of Products retourne 2 et la mesure Number of Products All Years retourne 6.

Étapes suivantes

Les articles suivants peuvent être utiles :