DAX Autre - Fonction GROUPBY

La description

Renvoie une table avec un ensemble de colonnes sélectionnées. Permet à la fonction DAX CURRENTGROUP d'être utilisée dans des fonctions d'agrégation dans les colonnes d'extension qu'elle ajoute. GROUPBY tente de réutiliser les données qui ont été regroupées, ce qui les rend très performantes.

La fonction DAX GROUPBY est similaire à la fonction DAX SUMMARIZE. Cependant, GROUPBY n'effectue pas de CALCULATE implicite pour les colonnes d'extension qu'il ajoute.

La fonction DAX GROUPBY est nouvelle dans Excel 2016.

Syntaxe

GROUPBY (<table>, [<groupBy_columnName1>], [<name>, <expression>] …)

Paramètres

N ° Sr. Terme et définition
1

table

Toute expression DAX qui renvoie une table de données.

2

groupBy_columnName1

Le nom d'une colonne existante dans la table (ou dans une table associée), par laquelle les données doivent être regroupées.

Ce paramètre ne peut pas être une expression.

3

name

Nom donné à une nouvelle colonne qui est ajoutée à la liste des colonnes GroupBy, entre guillemets.

4

expression

Toute expression DAX qui renvoie une valeur scalaire unique, où l'expression doit être évaluée pour chaque ensemble de valeurs GroupBy.

  • Il peut inclure n'importe laquelle des fonctions d'agrégation «X», telles que SUMX, AVERAGEX, MINX, MAXX, etc. et lorsqu'une de ces fonctions est utilisée de cette manière, le paramètre de table (qui est une expression de table) peut être remplacé par Fonction CURRENTGROUP. (Consultez la section Remarques pour plus de détails).

  • Cependant, la fonction CURRENTGROUP ne peut être utilisée qu'au niveau supérieur des analyses de table dans l'expression. Cela signifie,

    • ABS (SUMX (CURRENTGROUP (), [Column])) est autorisé, car ABS n'effectue pas d'analyse.

    • Mais, SUMX (<table>, SUMX (CURRENTGROUP ()…)) n'est pas autorisé.

  • La fonction DAX CALCULATE et les champs calculés ne sont pas autorisés dans l'expression

Valeur de retour

Une table avec les colonnes sélectionnées pour les paramètres groupBy_columnName et les colonnes groupées par colonnes désignées par les paramètres de nom.

Remarques

La fonction GROUPBY effectue les opérations suivantes -

  • Commencez par la table spécifiée (et toutes les tables associées dans le sens «à un»).

  • Créez un regroupement en utilisant toutes les colonnes GroupBy (qui doivent exister dans le tableau de l'étape 1).

  • Chaque groupe est une ligne dans le résultat, mais représente un ensemble de lignes dans la table d'origine.

  • Pour chaque groupe, évaluez les colonnes d'extension ajoutées. Contrairement à la fonction SUMMARIZE, un CALCULATE implicite n'est pas effectué et le groupe n'est pas placé dans le contexte de filtre.

Paramètres

  • Chaque colonne pour laquelle vous définissez un nom doit avoir une expression correspondante. Sinon, une erreur est renvoyée.

    • Le premier paramètre, nom, définit le nom de la colonne dans les résultats. Le deuxième paramètre, expression, définit le calcul effectué pour obtenir la valeur de chaque ligne de cette colonne.

    • Chaque nom doit être placé entre guillemets doubles.

  • groupBy_columnName doit être dans une table ou dans une table associée.

    • La fonction regroupe un ensemble sélectionné de lignes en un ensemble de lignes récapitulatives par les valeurs d'une ou plusieurs colonnes groupBy_columnName. Une ligne est renvoyée pour chaque groupe.

GROUPE ACTUEL ()

  • La fonction CURRENTGROUP ne peut être utilisée que dans une expression qui définit une colonne dans la fonction GROUPBY.

  • CURRENTGROUP renvoie un ensemble de lignes du paramètre de table de GROUPBY qui appartiennent à la ligne actuelle du résultat GROUPBY.

  • La fonction CURRENTGROUP n'accepte aucun paramètre et n'est prise en charge que comme premier paramètre de l'une des fonctions d'agrégation suivantes: AverageX, CountAX, CountX, GeoMeanX, MaxX, MinX, ProductX, StDevX.S, StDevX.P, SumX, VarX.S, VarX .P.

Exemple

= GROUPBY ( 
   Sales,Sales[Salesperson],Products[Product],"Total Sales",  
   SUMX (CURRENTGROUP (),[Sales Amount]) 
)