Partager via


SUMMARIZE

s’applique à :colonne calculéetable calculéemesurecalcul visuel

Retourne une table récapitulative des totaux demandés sur un ensemble de groupes.

Syntaxe

SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)

Paramètres

Terme Définition
table Toute expression DAX qui retourne une table de données.
groupBy_ColumnName (Facultatif) Nom qualifié d’une colonne existante utilisée pour créer des groupes récapitulatives en fonction des valeurs qu’elle contient. Ce paramètre ne peut pas être une expression.
name Nom donné à une colonne totale ou récapitululée, entre guillemets doubles.
expression Toute expression DAX qui retourne une valeur scalaire unique, où l’expression doit être évaluée plusieurs fois (pour chaque ligne/contexte).

Valeur de retour

Tableau avec les colonnes sélectionnées pour les arguments groupBy_columnName et les colonnes résumées conçues par les arguments de nom.

Remarques

  • Chaque colonne pour laquelle vous définissez un nom doit avoir une expression correspondante ; sinon, une erreur est retournée. Le premier argument, nom, définit le nom de la colonne dans les résultats. Le deuxième argument, expression, définit le calcul effectué pour obtenir la valeur de chaque ligne de cette colonne.

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

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

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

  • Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées ou les règles de sécurité au niveau des lignes (RLS).

Exemple

L’exemple suivant retourne un résumé des ventes de revendeur regroupées autour de l’année civile et du nom de la catégorie de produit, ce tableau de résultats vous permet d’effectuer une analyse sur les ventes des revendeurs par année et par catégorie de produit.

SUMMARIZE(ResellerSales_USD
      , DateTime[CalendarYear]
      , ProductCategory[ProductCategoryName]
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
      )

Le tableau suivant présente un aperçu des données, car elles sont reçues par n’importe quelle fonction qui s’attend à recevoir une table :

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
2008 Bikes 12968255.42 36167.6592
2005 Bikes 6958251.043 4231.1621
2006 Bikes 18901351.08 178175.8399
2007 Bikes 24256817.5 276065.992
2008 Composants 2008052.706 39.9266
2005 Composants 574256.9865 0
2006 Composants 3428213.05 948.7674
2007 Composants 5195315.216 4226.0444
2008 Clothing 366507.844 4151.1235
2005 Clothing 31851.1628 90.9593
2006 Clothing 455730.9729 4233.039
2007 Clothing 815853.2868 12489.3835
2008 Accessories 153299.924 865.5945
2005 Accessories 18594.4782 4.293
2006 Accessories 86612.7463 1061.4872
2007 Accessories 275794.8403 4756.6546

Avec ROLLUP

L’ajout de la syntaxe ROLLUP modifie le comportement de la fonction SUMMARIZE en ajoutant des lignes de cumul au résultat sur les colonnes groupBy_columnName. ROLLUP ne peut être utilisé qu’au sein d’une expression SUMMARIZE.

Exemple

L’exemple suivant ajoute des lignes de cumul aux colonnes Group-By de l’appel de fonction SUMMARIZE :

SUMMARIZE(ResellerSales_USD
      , ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)

Retourne la table suivante

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
2008 Bikes 12968255.42 36167.6592
2005 Bikes 6958251.043 4231.1621
2006 Bikes 18901351.08 178175.8399
2007 Bikes 24256817.5 276065.992
2008 Composants 2008052.706 39.9266
2005 Composants 574256.9865 0
2006 Composants 3428213.05 948.7674
2007 Composants 5195315.216 4226.0444
2008 Clothing 366507.844 4151.1235
2005 Clothing 31851.1628 90.9593
2006 Clothing 455730.9729 4233.039
2007 Clothing 815853.2868 12489.3835
2008 Accessories 153299.924 865.5945
2005 Accessories 18594.4782 4.293
2006 Accessories 86612.7463 1061.4872
2007 Accessories 275794.8403 4756.6546
2008 15496115.89 41224.3038
2005 7582953.67 4326.4144
2006 22871907.85 184419.1335
2007 30543780.84 297538.0745
76494758.25 527507.9262

Avec ROLLUPGROUP

L’ajout de ROLLUPGROUP à l’intérieur d’une syntaxe ROLLUP peut être utilisé pour empêcher les sous-totaux partiels dans les lignes de cumul. ROLLUPGROUP ne peut être utilisé que dans une expression ROLLUP, ROLLUPADDISSUBTOTALou ROLLUPISSUBTOTAL.

Exemple

L’exemple suivant montre uniquement le total général de toutes les années et catégories sans le sous-total de chaque année avec toutes les catégories :

SUMMARIZE(ResellerSales_USD
      , ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]))
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)

Retourne la table suivante

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
2008 Bikes 12968255.42 36167.6592
2005 Bikes 6958251.043 4231.1621
2006 Bikes 18901351.08 178175.8399
2007 Bikes 24256817.5 276065.992
2008 Composants 2008052.706 39.9266
2005 Composants 574256.9865 0
2006 Composants 3428213.05 948.7674
2007 Composants 5195315.216 4226.0444
2008 Clothing 366507.844 4151.1235
2005 Clothing 31851.1628 90.9593
2006 Clothing 455730.9729 4233.039
2007 Clothing 815853.2868 12489.3835
2008 Accessories 153299.924 865.5945
2005 Accessories 18594.4782 4.293
2006 Accessories 86612.7463 1061.4872
2007 Accessories 275794.8403 4756.6546
76494758.25 527507.9262

Avec ISSUBTOTAL

Avec ISSUBTOTAL, vous pouvez créer une autre colonne dans l’expression SUMMARIZE qui retourne True si la ligne contient des valeurs de sous-total pour la colonne donnée en tant qu’argument pour ISSUBTOTAL, sinon retourne False. ISSUBTOTAL ne peut être utilisé qu’au sein d’une expression SUMMARIZE.

Exemple

L’exemple suivant génère une colonne ISSUBTOTAL pour chacune des colonnes ROLLUP dans l’appel de fonction SUMMARIZE donné :

SUMMARIZE(ResellerSales_USD
      , ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
      , "Is Sub Total for DateTimeCalendarYear", ISSUBTOTAL(DateTime[CalendarYear])
      , "Is Sub Total for ProductCategoryName", ISSUBTOTAL(ProductCategory[ProductCategoryName])
)

Retourne la table suivante

[Is Sub Total for DateTimeCalendarYear] [Is Sub Total for ProductCategoryName] DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
FALSE FALSE
FALSE FALSE 2008 Bikes 12968255.42 36167.6592
FALSE FALSE 2005 Bikes 6958251.043 4231.1621
FALSE FALSE 2006 Bikes 18901351.08 178175.8399
FALSE FALSE 2007 Bikes 24256817.5 276065.992
FALSE FALSE 2008 Composants 2008052.706 39.9266
FALSE FALSE 2005 Composants 574256.9865 0
FALSE FALSE 2006 Composants 3428213.05 948.7674
FALSE FALSE 2007 Composants 5195315.216 4226.0444
FALSE FALSE 2008 Clothing 366507.844 4151.1235
FALSE FALSE 2005 Clothing 31851.1628 90.9593
FALSE FALSE 2006 Clothing 455730.9729 4233.039
FALSE FALSE 2007 Clothing 815853.2868 12489.3835
FALSE FALSE 2008 Accessories 153299.924 865.5945
FALSE FALSE 2005 Accessories 18594.4782 4.293
FALSE FALSE 2006 Accessories 86612.7463 1061.4872
FALSE FALSE 2007 Accessories 275794.8403 4756.6546
FALSE TRUE
FALSE TRUE 2008 15496115.89 41224.3038
FALSE TRUE 2005 7582953.67 4326.4144
FALSE TRUE 2006 22871907.85 184419.1335
FALSE TRUE 2007 30543780.84 297538.0745
TRUE TRUE 76494758.25 527507.9262

SUMMARIZECOLUMNS