HASONEFILTER |
A un filtre |
| DAX (Data Analysis Expressions) |
Syntaxe
Paramètres
| Nom |
Description |
| columnName |
Ce paramètre permet de spécifier la colonne sur laquelle vérifier si un seul filtre est appliqué. |
Description
Cette fonction permet de retourner TRUE si une seule valeur est directement appliquée comme filtre sur une colonne, sinon FALSE.
Remarques
- Concept et objectif de HASONEFILTER : La fonction HASONEFILTER est utilisée pour vérifier si une colonne donnée est filtrée sur une seule valeur dans le
contexte courant. Elle retourne TRUE si une seule valeur est appliquée directement comme filtre, et FALSE dans tous les autres cas, y compris si la colonne est filtrée
sur plusieurs valeurs ou si aucun filtre n'est appliqué. Cette fonction est utile pour contrôler la logique conditionnelle dans les mesures et éviter des calculs
incorrects dans des contextes multi-filtrés.
- Rôle du paramètre columnName : Le paramètre columnName désigne la colonne sur laquelle la fonction vérifie l'existence d'un filtre unique. Il
est essentiel de choisir la colonne appropriée, car le résultat dépend directement de la granularité et du contexte du filtre appliqué. Cette colonne peut provenir d'une
table physique ou d'une table calculée dans le modèle DAX.
- Différence avec HASONEVALUE : HASONEFILTER se distingue de HASONEVALUE car elle vérifie la présence d'un filtre actif sur une colonne, tandis que HASONEVALUE
vérifie si une seule valeur est visible dans le contexte d'évaluation, indépendamment des filtres. Cela permet de mieux gérer des contextes où des relations ou des hiérarchies
sont impliquées et où les filtres directs doivent être pris en compte.
- Applications pratiques dans les mesures : HASONEFILTER est souvent utilisée dans des mesures pour contrôler le comportement d'un calcul selon la présence d'un
filtre unique. Par exemple, elle permet d'afficher des résultats détaillés uniquement lorsqu'un seul produit ou client est sélectionné, évitant ainsi de sommer ou d'agréger
des valeurs dans des contextes multi-filtrés.
- Interaction avec les hiérarchies : Lorsqu'une colonne fait partie d'une hiérarchie, HASONEFILTER évalue uniquement les filtres appliqués directement à cette
colonne. Les filtres appliqués sur des niveaux supérieurs ou inférieurs de la hiérarchie n'affectent pas directement le résultat. Cela permet de mieux contrôler le calcul
dans des tableaux ou des matrices avec des hiérarchies imbriquées.
- Comportement avec les colonnes non filtrées : Si la colonne spécifiée n'a aucun filtre appliqué dans le contexte courant, HASONEFILTER retourne FALSE. Cela
inclut les situations où toutes les valeurs sont visibles ou lorsque le contexte est vide. Ce comportement est utile pour créer des mesures dynamiques qui adaptent leurs
résultats selon la sélection des utilisateurs.
- Bonnes pratiques pour l'utilisation : Il est recommandé de combiner HASONEFILTER avec des fonctions conditionnelles comme IF pour contrôler le flux des
calculs. Cela permet de gérer des scénarios complexes où les résultats doivent changer selon la granularité du filtre appliqué. Documenter la logique de filtrage améliore
également la lisibilité et la maintenabilité des modèles DAX.
- Impact sur les performances et lisibilité : HASONEFILTER est une fonction légère qui n'impacte pas significativement les performances même dans des modèles
volumineux. Cependant, une utilisation excessive dans des mesures imbriquées peut rendre les formules difficiles à lire. Une bonne pratique consiste à utiliser des variables
(VAR) pour stocker les résultats intermédiaires et clarifier l'intention du calcul.
Dernière mise à jour : Vendredi, le 30 Mai 2025