ALL en DAX : ignorer les filtres pour calculer une part du total
La fonction qui donne un dénominateur stable aux pourcentages. Et ses deux voisines, ALLSELECTED et REMOVEFILTERS, qu’on confond avec elle.
ALL renvoie toutes les lignes d’une table, ou toutes les valeurs d’une ou plusieurs colonnes, en ignorant les filtres qui ont pu être appliqués. Comme ALLEXCEPT, elle ne s’affiche pas seule dans un visuel : elle sert à modifier l’ensemble de lignes sur lequel un autre calcul est fait, le plus souvent comme argument de CALCULATE.
C’est la brique de tous les ratios « part du total » : poids d’une catégorie dans le chiffre d’affaires, contribution d’une agence, part d’un client. Le numérateur suit les filtres du visuel, le dénominateur les ignore grâce à ALL.
Une table, des colonnes, ou rien
ALL( [<table> | <column>[, <column>[, <column>[, …]]]] )
| Forme | Effet |
|---|---|
ALL(table) | Retire tous les filtres de la table et renvoie toutes ses lignes. |
ALL(column, …) | Retire les filtres des seules colonnes nommées ; les filtres sur les autres colonnes de la table restent. Toutes les colonnes doivent venir de la même table. |
ALL() | Retire tous les filtres partout. Sans argument, ALL ne sert qu’à effacer des filtres dans CALCULATE et ne renvoie pas de table. |
L’argument doit être une table ou une colonne du modèle : ALL n’accepte pas d’expression de table ni d’expression de colonne. Elle n’est pas prise en charge en mode DirectQuery dans les colonnes calculées et les règles RLS.
ALL comme filtre et ALL comme table
Le modèle relie une table Ventes à Produits (Produit, Catégorie, Marque) et à Calendrier. La mesure de base est CA = SUM(Ventes[Montant]).
La part de chaque ligne dans le total
Part du CA =
DIVIDE(
[CA],
CALCULATE([CA], ALL(Produits))
)
Utilisé comme modificateur de CALCULATE, ALL(Produits) efface tout filtre posé sur la table Produits. Dans un tableau par catégorie, les lignes totalisent 100 %. Un filtre sur l’année, posé sur Calendrier, s’applique toujours au numérateur comme au dénominateur.
Effacer une seule colonne
CA toutes catégories =
CALCULATE([CA], ALL(Produits[Catégorie]))
Seul le filtre sur la catégorie disparaît. Un filtre sur la marque, autre colonne de Produits, reste actif.
ALL comme table à parcourir
Nombre de catégories =
COUNTROWS(ALL(Produits[Catégorie]))
Ici ALL renvoie la liste complète des catégories, quel que soit le filtre. La mesure affiche le même nombre sur toutes les lignes du visuel.
La part du total qui ne réagit pas au segment
Un rapport affiche la mesure Part du CA par catégorie, avec un segment sur la marque. Tant que rien n’est sélectionné, les lignes totalisent 100 %. L’utilisateur choisit une marque : les montants baissent, et les pourcentages ne totalisent plus 100 %.
Le calcul est juste, c’est la question qui a changé. ALL(Produits) retire aussi le filtre du segment, donc le dénominateur reste le chiffre d’affaires de toutes les marques. Si l’on veut la part dans la sélection, il faut ALLSELECTED, qui ignore les filtres posés à l’intérieur du visuel mais conserve ceux qui viennent de l’extérieur, comme les segments :
Part du CA sélectionné =
DIVIDE(
[CA],
CALCULATE([CA], ALLSELECTED(Produits))
)
Les deux mesures sont utiles : l’une mesure le poids dans l’ensemble de l’activité, l’autre le poids dans ce que l’utilisateur regarde. Le piège est de n’en publier qu’une sans dire laquelle. Un libellé explicite dans le visuel suffit à lever l’ambiguïté.
Troisième voisine, REMOVEFILTERS efface des filtres comme ALL dans CALCULATE, mais ne peut pas renvoyer de table. Écrire CALCULATE([CA], REMOVEFILTERS(Produits)) dit plus clairement l’intention quand on ne veut qu’effacer.
Ce qu’on nous demande sur ALL
Quelle différence entre ALL et REMOVEFILTERS ?
Dans CALCULATE, les deux effacent les filtres de la table ou des colonnes nommées. REMOVEFILTERS ne peut servir qu’à cela, alors que ALL peut aussi renvoyer une table, par exemple pour compter toutes les catégories avec COUNTROWS.
Quelle différence entre ALL et ALLSELECTED ?
ALL ignore tous les filtres, segments compris. ALLSELECTED ignore les filtres posés à l’intérieur du visuel, comme les lignes d’un tableau, mais conserve les filtres venus de l’extérieur, comme un segment ou un filtre de page. ALLSELECTED donne donc une part de la sélection.
Que fait ALL sans argument ?
ALL() retire tous les filtres de toutes les tables. Sous cette forme, elle ne peut servir qu’à effacer des filtres dans CALCULATE et ne renvoie pas de table.
Quelle différence entre ALL et ALLEXCEPT ?
ALL(Produits[Catégorie]) retire le filtre des colonnes nommées. ALLEXCEPT(Produits, Produits[Catégorie]) retire tous les filtres de la table sauf ceux des colonnes nommées. ALLEXCEPT est pratique quand il faut libérer presque toutes les colonnes d’une table.
Pour aller plus loin
ALLEXCEPT- Calculer un cumul en DAX, autre calcul qui repose sur la modification des filtres.
- Créer une colonne cumulée dans Power BI.
- Le DAX expliqué aux décideurs : lire une mesure sans l’écrire.
- La référence complète Power Query et DAX.
Sources. Documentation officielle de l’éditeur, consultée le 13 octobre 2026 : ALL, ALLSELECTED, REMOVEFILTERS, ALLEXCEPT.
Vos pourcentages ne totalisent plus 100 % dès qu’on filtre ?
Nous reprenons vos mesures de part pour que chaque pourcentage dise clairement de quel total il parle.