CURRENTGROUP |
Groupe courant |
|---|---|
| DAX (Data Analysis Expressions) | |
Syntaxe
| CURRENTGROUP() |
Description
Cette fonction permet de retourner un ensemble de lignes correspondant au groupe courant dans une expression GROUPBY.
Remarques
- Une fonction exclusivement utilisée dans GROUPBY : La fonction CURRENTGROUP est spécialement conçue pour être utilisée dans le contexte de l'expression GROUPBY. En dehors de cette fonction, CURRENTGROUP n'a pas de sens ni de fonctionnalité propre. Elle sert à récupérer le groupe de lignes que GROUPBY est en train de traiter. Cela en fait une fonction contextuelle et dépendante.
- Permet de manipuler les lignes regroupées : Lorsqu'elle est appelée, CURRENTGROUP retourne un ensemble de lignes correspondant au groupe courant. Cet ensemble peut ensuite être utilisé comme source pour d'autres agrégations ou opérations. Cela donne au développeur une grande flexibilité dans la manière de transformer les données regroupées. Ce mécanisme est comparable à l'usage de contextes de lignes dans SUMX ou FILTER, mais à l'intérieur d'un regroupement.
- Indispensable pour les calculs personnalisés dans GROUPBY : GROUPBY permet de créer des résumés avancés, mais il ne peut pas directement appliquer n'importe quelle fonction d'agrégation standard. C'est précisément là que CURRENTGROUP devient essentiel : elle expose les lignes regroupées pour créer des calculs personnalisés. Ainsi, on peut appliquer SUMX, AVERAGEX, COUNTX ou même des expressions plus complexes. Cela rend GROUPBY beaucoup plus puissant.
- Un substitut avancé à SUMMARIZE pour certains usages : Bien que SUMMARIZE soit couramment utilisé pour créer des tables regroupées, il ne permet pas d'intégrer des expressions sur des sous-ensembles de données à l'intérieur de chaque groupe. CURRENTGROUP, en combinaison avec GROUPBY, débloque cette possibilité. Cela permet de produire des tables de synthèse plus riches et plus dynamiques. C'est donc une alternative destinée aux scénarios où SUMMARIZE est insuffisant.
- Fonctionne comme une table temporaire interne : Lors de son évaluation, CURRENTGROUP renvoie une table virtuelle contenant uniquement les lignes du groupe en cours. Cette table n'existe pas physiquement dans le modèle, ce qui signifie qu'elle est générée et détruite dynamiquement pendant l'exécution. Ce comportement est similaire aux tables virtuelles obtenues via FILTER ou VALUES. C'est ce qui permet d'obtenir une grande efficacité dans le traitement.
- Elle permet des expressions complexes sur les groupes : Grâce à CURRENTGROUP, il devient possible de créer des calculs sophistiqués comme : somme conditionnelle, moyenne pondérée, ratio interne, détection de valeurs extrêmes ou agrégation par intervalle. Chaque opération peut parcourir la table renvoyée pour calculer des valeurs spécifiques au groupe. On obtient ainsi un niveau de contrôle impossible avec les agrégations classiques. Cette granularité est très utile dans les modèles analytiques complexes.
- Le contexte de groupe est indépendant du contexte de filtre externe : CURRENTGROUP agit dans le contexte spécifique généré par GROUPBY, distinct du contexte de filtre traditionnel. Cela signifie que les filtres externes peuvent restreindre les données avant regroupement, mais que CURRENTGROUP ne regarde que les lignes de son groupe. Cette séparation permet d'éviter des interférences inattendues entre différents niveaux d'évaluation. C'est un point crucial pour garantir des résultats cohérents.
- Un outil fondamental pour générer des tables calculées évoluées : Lorsqu'elle est utilisée dans une table calculée, CURRENTGROUP permet d'obtenir des tableaux extrêmement raffinés qui peuvent servir de base à des mesures avancées. On peut, par exemple, construire une table de statistiques internes par catégorie ou des indicateurs complexes pour chaque segment. Ce niveau de détail est précieux dans les rapports Power BI orientés analyse ou audit. La fonction s'inscrit donc dans les outils avancés de manipulation de tables virtuelles en DAX.
Dernière mise à jour : Vendredi, le 30 Mai 2025