Référence DAX · 5 min de lecture

COUNTAX : compter les résultats non vides d’une expression en DAX

Compter les lignes qui répondent à une condition, ou celles dont un champ est renseigné. Avec le piège des chaînes vides, qui comptent comme des valeurs.

COUNTAX parcourt une table ligne par ligne, évalue une expression sur chacune et compte les lignes dont le résultat n’est pas vide. Elle fonctionne comme COUNTA, mais sur une expression calculée au lieu d’une simple colonne.

En gestion, elle répond à des questions du type « combien de commandes ont bénéficié d’une remise » ou « combien de produits actifs ont un fournisseur renseigné ». Elle sert aussi à mesurer la qualité d’une donnée : le nombre de lignes où un champ obligatoire est bien rempli.

Syntaxe

Une table, une expression

COUNTAX(<table>, <expression>)
ParamètreRôle
tableLa table dont les lignes sont parcourues. Ce peut être une table filtrée par FILTER.
expressionL’expression évaluée pour chaque ligne. La ligne est comptée si le résultat n’est pas vide.

La fonction renvoie un nombre entier. Quand elle ne trouve aucune ligne à agréger, elle renvoie un vide, pas zéro. Elle n’est pas prise en charge en mode DirectQuery dans les colonnes calculées et les règles RLS.

Exemples

Trois comptages sur un modèle de ventes

Le modèle compte une table Ventes (Date, Montant, Remise, Commentaire) reliée à Produits (Produit, Catégorie, Statut, Fournisseur) et à Calendrier.

Compter les lignes renseignées

Ventes commentées =
COUNTAX(Ventes, Ventes[Commentaire])

La mesure compte les lignes de ventes dont le commentaire n’est pas vide, dans le contexte du visuel : par mois, par catégorie, par vendeur.

Compter les lignes qui remplissent une condition

Ventes remisées =
COUNTAX(Ventes, IF(Ventes[Remise] > 0, 1))

Le IF sans troisième argument renvoie un vide quand la condition est fausse. Seules les lignes avec une remise produisent un résultat non vide, et ce sont elles que COUNTAX compte.

Compter sur une table filtrée

Produits actifs avec fournisseur =
COUNTAX(
    FILTER(Produits, Produits[Statut] = "Actif"),
    Produits[Fournisseur]
)

FILTER ne garde que les produits actifs, puis COUNTAX compte ceux dont le fournisseur est renseigné. Rapporté au nombre de produits actifs, c’est un indicateur simple de complétude du référentiel.

En pratique

Les chaînes vides comptent comme des valeurs

La mesure Ventes commentées renvoie presque le nombre total de lignes, alors que la plupart des commentaires sont visiblement vides dans le fichier source. Le calcul n’est pas faux : ces cellules ne contiennent pas un vide, mais une chaîne de texte vide.

La documentation de l’éditeur le précise : une expression qui renvoie une chaîne vide est traitée comme non vide, et la ligne est comptée. C’est fréquent avec les exports qui écrivent "" au lieu de laisser la cellule nulle, ou avec une colonne calculée qui renvoie "" par défaut.

Deux parades. La plus propre se fait en amont, dans Power Query, en remplaçant les textes vides par null au chargement. La seconde se fait dans la mesure :

Ventes commentées =
COUNTAX(Ventes, IF(Ventes[Commentaire] <> "", 1))

En DAX, un vide est égal à une chaîne vide dans une comparaison : la condition écarte donc les deux cas d’un coup. Dernier réflexe : si le visuel doit afficher 0 plutôt qu’une case vide, ajoutez + 0 à la fin de la mesure.

Questions fréquentes

Ce qu’on nous demande sur COUNTAX

Quelle différence entre COUNTAX et COUNTX ?

Les deux parcourent une table et comptent les résultats non vides d’une expression. Selon la documentation de l’éditeur, COUNTX ne compte que les nombres, les dates et les chaînes, et il faut passer par COUNTAX pour compter des valeurs logiques (vrai ou faux).

Quelle différence entre COUNTAX et COUNTA ?

COUNTA compte les valeurs non vides d’une seule colonne. COUNTAX évalue une expression ligne par ligne : elle permet donc de compter selon une condition ou sur une table filtrée, ce que COUNTA ne sait pas faire seule.

COUNTAX compte-t-elle les valeurs FAUX ?

Oui. Une valeur logique fausse n’est pas un vide. COUNTAX(Ventes, Ventes[Payée]) compte donc les lignes vraies et fausses. Pour ne compter que les ventes payées, écrivez COUNTAX(Ventes, IF(Ventes[Payée], 1)).

Pourquoi ma mesure affiche-t-elle une case vide au lieu de 0 ?

Parce que COUNTAX renvoie un vide quand elle ne trouve aucune ligne à agréger. Ajoutez + 0 à la mesure si le rapport doit afficher zéro.

À côté

Pour aller plus loin

Sources. Documentation officielle de l’éditeur, consultée le 13 octobre 2026 : COUNTAX, COUNTX, COUNTA.

Vos comptages ne collent pas avec ce que vous voyez dans les données ?

Nous retrouvons d’où viennent les écarts, dans la mesure ou dans la préparation, et nous les corrigeons à la source.

Réserver un appelou 01 83 64 60 25
01 83 64 60 25 Réserver un appel