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 |