HASONEVALUE dans Power BI : détecter une valeur unique en DAX
Votre matrice affiche des lignes justes, mais un total incohérent.
La fonction HASONEVALUE sert précisément à distinguer ces deux situations. Elle indique si une colonne est réduite à une seule valeur dans le contexte de filtre courant.
Voici sa syntaxe, son cas d’usage principal et l’option native apparue en 2026 qui peut parfois la remplacer.
HASONEVALUE en un exemple simple
Prenons trois vendeurs et deux régions. La région Nord revient deux fois.
Vendeur | Région | CA |
Marie | Nord | 100 € |
Karim | Nord | 150 € |
Léa | Sud | 200 € |
Ajoutons cette mesure au modèle.
Une seule region ? = HASONEVALUE ( Ventes[Region] )Plaçons les vendeurs en lignes d'un tableau. Vérifions le résultat ligne par ligne.
Ligne du visuel | Régions visibles | Une seule valeur ? |
Marie | Nord | ✓ VRAI |
Karim | Nord | ✓ VRAI |
Léa | Sud | ✓ VRAI |
Total | Nord ET Sud | ✗ FAUX |
La ligne de total est la seule à renvoyer FAUX.
Tout l'intérêt de la fonction tient dans cette différence.
Syntaxe et fonctionnement de HASONEVALUE
Le paramètre attendu
Syntaxe
HASONEVALUE ( <NomDeColonne> )
Un seul argument. La fonction renvoie VRAI ou FAUX.
Le paramètre est une référence de colonne. Ce ne peut pas être une expression.
Écrivez le nom de la table, puis celui de la colonne entre crochets.
Ce que « une seule valeur » veut dire
La fonction examine le contexte de filtre en cours.
Elle renvoie VRAI si la colonne y est réduite à une valeur distincte.
Microsoft donne l'équivalent exact de cette écriture.
COUNTROWS ( VALUES ( <NomDeColonne> ) ) = 1Le comptage porte sur les valeurs distinctes, pas sur les lignes.
Trois lignes portant Nord ne comptent donc que pour une seule valeur.
Corriger un total qui ne fait pas la somme des lignes
Pourquoi le total est faux
Reprenons nos trois vendeurs. Ajoutons une prime de 50 € au-delà de 150 € de ventes.
CA = SUM ( Ventes[Montant] )Prime = IF ( [CA] >= 150 ; 50 ; 0 )Vendeur | CA | Prime affichée |
Marie | 100 € | 0 € |
Karim | 150 € | 50 € |
Léa | 200 € | 50 € |
Total | 450 € | 50 € |
Le résultat ligne à ligne est correct. La somme attendue vaut 100 €.
La ligne de total affiche pourtant 50 €. Power BI n'additionne pas les lignes affichées.
Il réévalue la mesure sans le filtre du vendeur.
Le CA total atteint 450 €, donc la prime vaut 50 €.
Le calcul est techniquement juste. Il est commercialement absurde.

La mesure corrigée avec HASONEVALUE
HASONEVALUE permet de traiter la ligne de total séparément.
Prime =
IF (
HASONEVALUE ( Ventes[Vendeur] ) ;
IF ( [CA] >= 150 ; 50 ; 0 ) ;
SUMX ( VALUES ( Ventes[Vendeur] ) ; IF ( [CA] >= 150 ; 50 ; 0 ) )
)
Vérifions de nouveau le comportement, ligne par ligne.
Vendeur | CA | Prime | Additionnée par SUMX ? |
Marie | 100 € | 0 € | ✓ |
Karim | 150 € | 50 € | ✓ |
Léa | 200 € | 50 € | ✓ |
Total | 450 € | 100 € | ✗ |
Sur une ligne vendeur, le test renvoie VRAI. La règle métier s'applique normalement.
Sur la ligne de total, le test renvoie FAUX.
SUMX parcourt alors chaque vendeur et additionne les primes.
Bon à savoir
SUMX déclenche une transition de contexte sur chaque vendeur. C'est ce qui permet à la mesure CA de renvoyer le bon montant à chaque itération.
HASONEVALUE, SELECTEDVALUE ou ISINSCOPE
Trois fonctions se ressemblent. Elles ne répondent pas à la même question.
HASONEVALUE
Renvoie VRAI ou FAUX.
À utiliser pour savoir si l'on se trouve sur une ligne de détail ou sur un total.
SELECTEDVALUE
Renvoie la valeur elle-même, ou une valeur de repli. Microsoft la recommande pour lire une sélection.
ISINSCOPE
Renvoie VRAI si la colonne sert de regroupement dans le visuel. C'est le bon choix en matrice hiérarchique.
Le piège est le suivant. Un segment peut filtrer la colonne sur une seule valeur.
HASONEVALUE renvoie alors VRAI même sur la ligne de total. ISINSCOPE, lui, renvoie FAUX.
Pour un titre dynamique, préférez SELECTEDVALUE. Microsoft recommande cette fonction à la place de l'ancien couple IF, HASONEVALUE et VALUES.

Totaux personnalisés : la nouveauté qui change la donne
Microsoft a introduit les totaux personnalisés en préversion en mars 2026.
Ils sont en disponibilité générale depuis mai 2026.
Faites un clic droit sur une colonne numérique d'un tableau ou d'une matrice.
Choisissez ensuite « Personnaliser le calcul total ». Sept options sont proposées.
Option | Ce que la ligne de total affiche |
Somme | Somme des valeurs des lignes affichées |
Moyenne | Moyenne des valeurs des lignes affichées |
Min | Valeur minimale des lignes affichées |
Max | Valeur maximale des lignes affichées |
Comptage (Unique) | Nombre de valeurs uniques des lignes affichées |
Nombre | Nombre de valeurs des lignes affichées |
Aucun | Masque la valeur de la ligne de total |
L'option Somme additionne les lignes affichées.
Elle règle le cas le plus fréquent sans écrire une ligne de DAX.
Ce que Power BI fait réellement
La fonctionnalité s'appuie sur les calculs visuels.
La colonne d'origine reçoit le suffixe _Base, puis elle est masquée.
Un calcul visuel la remplace, sous cette forme.
Colonne = EXPANDALL ( <agregation> ( [Colonne_Base] ) ; ROWS COLUMNS )Un indicateur apparaît enfin dans la cellule de total concernée.
Quand garder HASONEVALUE
Les totaux personnalisés ne fonctionnent que sur les visuels tableau et matrice.
Ils ne s'appliquent qu'aux colonnes numériques.
La mise en forme du champ n'est pas non plus reprise.
Microsoft précise dans sa documentation sur la matrice que le comportement par défaut reste la traduction exacte de la mesure DAX.
Retenez la règle. Une simple somme des lignes affichées appelle un total personnalisé.
Une véritable règle métier appelle HASONEVALUE.
Les pièges de HASONEVALUE
Trois erreurs reviennent régulièrement chez les praticiens.
La première consiste à masquer le total avec BLANK au lieu de le recalculer.
Le lecteur perd alors une information, au lieu d'en gagner une.
HASONEVALUE n'est pas HASONEFILTER
HASONEVALUE tient compte des filtres croisés venus des tables liées.
HASONEFILTER ne regarde que le filtre direct posé sur la colonne.
Un filtre appliqué sur une table de dimension suffit donc à HASONEVALUE.
HASONEFILTER, dans la même situation, renverra FAUX.
La fonction est faite pour les mesures
Appelée dans un contexte de ligne, HASONEVALUE déclenche une transition de contexte.
Dans une colonne calculée, le contexte se réduit alors à la ligne courante.
Le test renvoie VRAI presque systématiquement. Réservez cette fonction aux mesures.
Ce qu'il faut retenir
HASONEVALUE renvoie VRAI quand la colonne testée est réduite à une seule valeur.
Son usage principal reste la correction d'un total incohérent.
Le recalcul du total passe par SUMX et VALUES, jamais par BLANK.
SELECTEDVALUE lit une sélection. ISINSCOPE repère un niveau de hiérarchie.
Depuis mai 2026, un total personnalisé règle les cas simples sans DAX.
Pour compter les valeurs uniques plutôt que les tester, lisez notre article sur DISTINCTCOUNT.
Pour comprendre comment une mesure modifie son contexte, lisez notre article sur CALCULATE.
Besoin d'aller plus vite ?
Nos formations Power BI en intra-entreprise sont animées par des formateurs qui développent aussi des rapports au quotidien. Parlons de votre projet.



