Fonction COUNTROWS DAX : compter les lignes d'une table
- Groupe Kronoscope
- 13 août
- 4 min de lecture
En DAX, la fonction COUNTROWS compte le nombre de lignes d'une table.
C'est la fonction de comptage la plus sûre de Power BI. Elle regarde les lignes, jamais le contenu des colonnes.
Exemple :
Table Commandes : C-001 Dupont, C-002 Martin, C-003 Dupont, C-004 Durand
COUNTROWS ( Commandes ) = 4
Quatre lignes dans la table, donc 4. Dupont revient deux fois, cela ne change rien.
Un DISTINCTCOUNT sur le client renverrait 3. Toute la différence est là.

Sommaire
Fonction COUNTROWS : syntaxe et valeur renvoyée
Syntaxe
COUNTROWS ( [<table>] )
L'argument table, facultatif mais à écrire
Microsoft place l'argument entre crochets. Il est donc facultatif.
Omis, Power BI utilise la table d'origine de l'expression en cours.
Écrivez-le toujours. La mesure devient lisible et se déplace sans casser.
Vous pouvez passer une table du modèle, ou une expression qui renvoie une table.
Ce que la fonction renvoie
Elle renvoie un nombre entier, calculé dans le contexte de filtre courant.
Le résultat change donc selon le mois, la zone ou le segment sélectionné.
S'il n'y a aucune ligne, elle renvoie BLANK. Ce n'est pas zéro.
Exemple : compter les commandes d'une période
Prenons une table Commandes, avec une ligne par commande.
La question métier est simple : combien de commandes sur la période affichée ?
Nombre de commandes =
COUNTROWS ( Commandes )Posée dans une matrice par mois, la mesure suit le visuel.
Chaque cellule compte les lignes qui restent après filtrage.
Pour figer une condition, encadrez la fonction avec CALCULATE.
Commandes 2025 =
CALCULATE (
COUNTROWS ( Commandes ),
'Calendrier'[Annee] = 2025
)La mesure à copier dans votre modèle
Voici la version générique. Un seul élément est à adapter : le nom de la table.
Nombre de lignes =
COUNTROWS ( 'VotreTable' )Besoin de ne compter que certaines lignes ? Filtrez la table à l'intérieur.
Lignes filtrees =
COUNTROWS (
FILTER ( 'VotreTable', 'VotreTable'[VotreColonne] > 0 )
)FILTER coûte cher sur une grosse table. Préférez CALCULATE quand la condition est simple.
Testez COUNTROWS sur vos propres données
Pas besoin de fichier d'exercice 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.
Exécutez
Le résultat s'affiche sous l'éditeur, calculé sur vos données réelles.
EVALUATE
ROW (
"Nombre de lignes", COUNTROWS ( 'VotreTable' )
)Votre modèle n'est pas modifié : une requête EVALUATE ne crée rien.
Votre résultat est faux ? Les pièges de COUNTROWS
Aucune ligne renvoie du vide, pas zéro
Un mois sans commande ne renvoie pas 0. Il renvoie BLANK.
La ligne disparaît alors du visuel, et le lecteur croit à une erreur.
Pour afficher un zéro, ajoutez zéro au résultat.
Nombre de commandes =
COUNTROWS ( Commandes ) + 0Attention : tous les mois s'affichent alors, y compris les mois sans aucune commande.
Dans une colonne calculée, COUNTROWS compte toute la table
Une colonne calculée n'a pas de contexte de filtre. Elle a un contexte de ligne.
La même valeur se répète donc sur chaque ligne, ce qui surprend beaucoup.
Pour compter les lignes liées, passez par RELATEDTABLE.
Nb commandes du client =
COUNTROWS ( RELATEDTABLE ( Commandes ) )Cette écriture vient de la documentation Microsoft. Elle suit la relation depuis la table des clients.
Dernier point : COUNTROWS n'est pas prise en charge en DirectQuery dans une colonne calculée ou une règle RLS.
COUNTROWS, COUNT ou DISTINCTCOUNT : laquelle choisir
Les trois fonctions comptent, mais elles ne comptent pas la même chose.

COUNTROWS
Compte les lignes d'une table. Une cellule vide reste une ligne comptée.
COUNT
Compte les valeurs non vides d'une seule colonne. Les vides sont sautés.
DISTINCTCOUNT
Compte les valeurs différentes d'une colonne. Un doublon ne compte qu'une fois.
Microsoft recommande COUNTROWS dès que l'intention est de compter des lignes.
Trois raisons figurent dans ses bonnes pratiques DAX : performance, indépendance aux valeurs vides et lisibilité.
Pour le comptage des valeurs uniques, lisez notre article sur la fonction DISTINCTCOUNT.
Questions fréquentes sur COUNTROWS
COUNTROWS peut-elle compter les lignes d'une table filtrée ?
Oui, c'est même son usage principal. Passez-lui une expression FILTER, ou encadrez-la par CALCULATE.
Quelle différence entre COUNTROWS et COUNTA ?
COUNTA compte les valeurs non vides d'une colonne. COUNTROWS ignore complètement les colonnes.
COUNTROWS ( DISTINCT ( colonne ) ) équivaut-il à DISTINCTCOUNT ?
Oui, les deux écritures renvoient le même résultat. DISTINCTCOUNT reste plus lisible.
Faut-il préférer COUNTROWS à COUNT sur une clé primaire ?
Oui. Les deux donnent le même chiffre, mais COUNTROWS est plus rapide et plus explicite.



