Fonction DISTINCTCOUNT DAX: compter les valeurs uniques
- Groupe Kronoscope
- 11 août
- 4 min de lecture

En DAX, la fonction DISTINCTCOUNT permet de compter le nombre de valeurs différentes dans une colonne, sans compter les doublons.
Exemple :
Client : Dupont, Martin, Dupont, Durand
DISTINCTCOUNT = 3
Car il y a 3 clients différents : Dupont, Martin et Durand. Toute la fonction tient dans cette différence.
Attention : dans un visuel Power BI, le total ne fait pas la somme des lignes.
Sommaire
Fonction DISTINCTCOUNT : syntaxe et valeur renvoyée
Syntaxe
DISTINCTCOUNT ( <colonne> )
Le paramètre unique
La fonction accepte un seul argument : une colonne. Le type de données n'a pas d'importance : texte, nombre, date ou identifiant. Vous ne pouvez pas lui passer une expression ni une table entière.
Ce que la fonction renvoie
Elle renvoie le nombre de valeurs distinctes trouvées dans le contexte de filtre. Autrement dit, le résultat change selon le mois, la zone ou le segment sélectionné.
S'il n'y a aucune ligne à compter, elle renvoie BLANK, pas zéro. La valeur vide compte comme une valeur à part entière.
Exemple : compter les clients actifs
Prenons une table Ventes, avec une ligne par commande et l'identifiant du client. La question métier est simple : combien de clients ont réellement commandé sur la période ?
Clients actifs =
DISTINCTCOUNT ( Ventes[IDClient] )Un client qui passe douze commandes ne compte qu'une seule fois. Posée dans une matrice par mois, la mesure suit le contexte de filtre.

La mesure à copier dans votre modèle
Voici la version générique, prête à coller. Deux éléments seulement sont à adapter : le nom de la table et celui de la colonne.
Valeurs uniques =
DISTINCTCOUNT ( 'VotreTable'[VotreColonne] )Besoin de figer une condition ? Combinez la fonction avec CALCULATE :
Clients actifs 2025 =
CALCULATE (
DISTINCTCOUNT ( 'VotreTable'[VotreColonne] ),
'Calendrier'[Annee] = 2025
)Testez DISTINCTCOUNT sur vos propres données
Pas besoin de télécharger un fichier ni de modifier votre rapport. Trois étapes suffisent.
Ouvrez la vue Requête DAX
Cliquez sur l'icône de la vue Requête DAX, dans le ruban de gauche de Power BI Desktop.
Collez la requête
Copiez le bloc EVALUATE ci-dessous, puis remplacez le nom de la table et celui de la colonne.
Exécutez
Le résultat s'affiche sous l'éditeur, calculé sur vos données réelles.
EVALUATE
ROW (
"Valeurs uniques", DISTINCTCOUNT ( 'VotreTable'[VotreColonne] )
)Votre modèle n'est pas modifié : une requête EVALUATE ne crée rien.
Votre résultat est faux ? Les pièges de DISTINCTCOUNT
Le total ne fait pas la somme des lignes
C'est le comportement le plus déroutant, et il est normal. Un même client peut être actif en janvier et en février.
Il compte une fois dans chaque mois, mais une seule fois dans le total. Additionner les douze mois donne donc un chiffre bien supérieur au total annuel.
La documentation Microsoft le confirme : les totaux d'un comptage distinct ne sont pas additifs.
La valeur vide compte pour une valeur
DISTINCTCOUNT compte BLANK comme une valeur distincte. Une ligne sans identifiant client ajoute donc 1 au comptage.
Bon à savoir
Pour ignorer les vides, utilisez DISTINCTCOUNTNOBLANK. Cette variante est méconnue et pourtant native.
En DirectQuery, DISTINCTCOUNT n'est pas prise en charge dans les colonnes calculées ni les règles RLS.
Autres fonctions DAX similaire à DISTINCTCOUNT
COUNTROWS
Compte des événements. Toutes les lignes d'une table, doublons inclus. La bonne fonction pour un nombre de commandes.
DISTINCTCOUNT
Compte des acteurs. Chaque valeur une seule fois. La bonne fonction pour un nombre de clients.
COUNT et COUNTA comptent les valeurs non vides d'une colonne. Elles ignorent les vides mais gardent les doublons.
DISTINCTCOUNTNOBLANK compte les valeurs uniques en excluant la valeur vide.
COUNTROWS ( VALUES ( colonne ) ) donne le même résultat que DISTINCTCOUNT, dans des mesures plus complexes.
Que coûte DISTINCTCOUNT sur un gros modèle ?
DISTINCTCOUNT est l'une des agrégations les plus coûteuses du moteur. Rien ne peut être précalculé : le comptage distinct est refait à chaque changement de filtre.
Le coût grandit avec la cardinalité, c'est-à-dire le nombre de valeurs uniques de la colonne.
Sur un identifiant client d'une PME, l'impact est invisible. Sur des millions de valeurs uniques, une seule mesure peut ralentir tout un rapport.
Pour aller plus loin
Les questions ci-dessous reprennent les cas les plus fréquents rencontrés en entreprise.
Questions fréquentes sur DISTINCTCOUNT
Quelle est la différence entre COUNT et DISTINCTCOUNT ?
COUNT compte les valeurs non vides, doublons inclus. DISTINCTCOUNT ne compte chaque valeur qu'une seule fois.
Comment compter les valeurs uniques sans les vides ?
Utilisez DISTINCTCOUNTNOBLANK. Cette fonction native exclut la valeur vide du comptage, contrairement à DISTINCTCOUNT.
Pourquoi mon total est-il inférieur à la somme des lignes ?
Un comptage distinct n'est pas additif. Une valeur présente dans deux lignes ne compte qu'une fois au total.
Peut-on utiliser DISTINCTCOUNT sur plusieurs colonnes ?
Non. La fonction accepte une seule colonne. Créez une colonne combinée, ou utilisez COUNTROWS avec SUMMARIZE.
DISTINCTCOUNT fonctionne-t-il en DirectQuery ?
Dans une mesure, oui. Dans une colonne calculée ou une règle RLS, la fonction n'est pas prise en charge.
Envie de pratiquer sur un cas complet ? Téléchargez nos exercices Power BI corrigés.



