ALLEXCEPT |
Toute exception |
| DAX (Data Analysis Expressions) |
Syntaxe
|
ALLEXCEPT(table,column[,column[,...]])
|
Paramètres
| Nom |
Description |
| table |
Ce paramètre permet de spécifier la table dont tous les filtres de contexte doivent être supprimés, à l'exception de ceux appliqués aux colonnes listées ensuite. |
| column |
Ce paramètre permet de désigner une ou plusieurs colonnes pour lesquelles les filtres doivent être conservés dans le contexte d'évaluation, empêchant ainsi leur suppression. |
Description
Cette fonction permet de supprimer tous les filtres de contexte dans une table, sauf ceux appliqués aux colonnes spécifiées.
Remarques
- Fonction puissante pour la gestion ciblée des filtres : ALLEXCEPT supprime tous les filtres appliqués sur une table, sauf ceux appliqués sur les colonnes
spécifiées. Cette capacité permet de contrôler précisément le contexte de calcul d'une mesure, en conservant certaines dimensions importantes tout en ignorant le reste
pour obtenir des totaux ou des ratios spécifiques.
- Idéal pour créer des mesures de comparaison par catégorie : La fonction est très utilisée pour calculer des indicateurs comme le pourcentage du total par
catégorie. Par exemple, dans une table de ventes, ALLEXCEPT peut supprimer tous les filtres sauf ceux de la colonne « Région », permettant de calculer la part des ventes
d'un produit dans chaque région sans tenir compte d'autres dimensions comme le produit ou la période.
- Souvent combinée avec CALCULATE pour redéfinir le contexte : ALLEXCEPT fonctionne parfaitement avec CALCULATE pour modifier le contexte de filtre d'une mesure.
Cela permet de recalculer des totaux partiels ou des ratios dans un contexte spécifique, sans affecter les filtres que l'on souhaite conserver. C'est un outil clé pour des
mesures dynamiques dans Power BI.
- Différence avec ALL et ALLCROSSFILTERED : ALL supprime tous les filtres sur une table ou colonne, et ALLCROSSFILTERED supprime uniquement les filtres croisés
provenant d'autres tables. ALLEXCEPT se distingue en offrant un contrôle intermédiaire : tous les filtres sont supprimés sauf ceux explicitement listés, ce qui permet des mesures
plus ciblées et précises dans des modèles complexes.
- Utile pour créer des totaux partiels ou agrégés : ALLEXCEPT permet de calculer des totaux par sous-catégorie ou par niveau de hiérarchie. Par exemple, on peut
calculer le total des ventes par année en conservant uniquement le filtre sur la colonne Année et en ignorant tous les autres filtres. Cela est très pratique pour les rapports
hiérarchiques ou les tableaux croisés dynamiques.
- Fonctionnement avec plusieurs colonnes : ALLEXCEPT accepte plusieurs colonnes pour définir des exceptions. Cela permet de conserver plusieurs dimensions de
filtrage simultanément, par exemple Région et Produit, tout en ignorant d'autres filtres comme le mois ou le vendeur. Cette flexibilité est utile pour des mesures
multidimensionnelles.
- Impact sur les performances à prendre en compte : Comme ALLEXCEPT modifie le contexte de filtre de manière importante, son utilisation sur de grandes tables
ou avec des expressions complexes peut ralentir le calcul des mesures. Il est conseillé de l'utiliser avec parcimonie et d'optimiser les modèles pour limiter l'impact sur
les performances.
- Complémentaire pour des calculs analytiques avancés : ALLEXCEPT est souvent combinée avec d'autres fonctions DAX comme SUMX,
AVERAGEX ou RANKX pour créer des mesures avancées. Par exemple, elle peut servir à calculer un classement d'un produit au
sein d'une catégorie spécifique ou à calculer un indicateur relatif à un groupe, tout en conservant les filtres essentiels pour l'analyse.
Dernière mise à jour : Vendredi, le 30 Mai 2025