top of page
Rechercher

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à.

COUNTROWS DAX POWER BI expliqué en exemple




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 ) + 0

Attention : 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.


COUNT  et COUNTROWS POWER BI ET DAX

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.

 
 
bottom of page