SUMMARIZE-Funktion (DAX)
Gibt eine Zusammenfassungstabelle für die angeforderten Gesamtergebnisse für eine Menge von Gruppen zurück.
Syntax
SUMMARIZE(<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)
Parameter
table
Ein DAX-Ausdruck, der eine Tabelle mit Daten zurückgibt.groupBy_columnName
(Optional) Der qualifizierte Name einer vorhandenen Spalte, mit der Zusammenfassungsgruppen auf Grundlage der darin enthaltenen Werte erstellt werden. Dieser Parameter kann kein Ausdruck sein.name
Der für eine Gesamtergebnisspalte oder zusammenfassende Spalte angegebene Name, eingeschlossen in doppelte Anführungszeichen.expression
Ein DAX-Ausdruck, der einen einzelnen Skalarwert zurückgibt, in dem der Ausdruck mehrmals ausgewertet wird (für jede Zeile/Kontext).
Rückgabewert
Eine Tabelle mit den ausgewählten Spalten für die groupBy_columnName-Argumente und den durch die Namensargumente entworfenen zusammengefassten Spalten.
Hinweise
Jede Spalte, für die Sie einen Namen definieren, muss einen entsprechenden Ausdruck enthalten; anderenfalls wird ein Fehler zurückgegeben. Das erste Argument, Name, definiert den Namen der Spalte in den Ergebnissen. Das zweite Argument, Ausdruck, definiert die Berechnung, die zum Abrufen des Werts für jede Zeile in dieser Spalte durchgeführt wurde.
groupBy_columnName muss entweder in table oder in einer mit table verknüpften Tabelle enthalten sein.
Jeder Name muss in doppelte Anführungszeichen eingeschlossen sein.
Die Funktion fasst eine ausgewählte Menge von Zeilen entsprechend den Werten einer oder mehrerer groupBy_columnName-Spalten zu einer Gruppe von Zusammenfassungszeilen zusammen. Für jede Gruppe wird eine Zeile zurückgegeben.
Beispiel
Im folgenden Beispiel wird eine Zusammenfassung der um das Kalenderjahr und den Produktkategorienamen gruppierten Verkäufe des Wiederverkäufers zurückgegeben. Diese Ergebnistabelle ermöglicht Ihnen die Analyse der Verkäufe nach Jahr und Produktkategorie.
SUMMARIZE(ResellerSales_USD
, DateTime[CalendarYear]
, ProductCategory[ProductCategoryName]
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
In der folgenden Tabelle wird eine Vorschau der Daten angezeigt, wie sie jede Funktion empfangen würde, die den Empfang einer Tabelle erwartet:
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 |
Components |
2008052.706 |
39.9266 |
2005 |
Components |
574256.9865 |
0 |
2006 |
Components |
3428213.05 |
948.7674 |
2007 |
Components |
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 |
Erweiterte SUMMARIZE-Optionen
SUMMARIZE mit ROLLUP
Durch das Hinzufügen der ROLLUP()-Syntax wird das Verhalten der SUMMARIZE-Funktion verändert, indem dem Ergebnis in den groupBy_columnName-Spalten Rollupzeilen hinzufügt werden.
SUMMARIZE(<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, ROLLUP(<groupBy_columnName>[,< groupBy_columnName>…])][, <name>, <expression>]…)
ROLLUP-Parameter
- groupBy_columnName
Der qualifizierte Name einer vorhandenen Spalte, mit der Zusammenfassungsgruppen auf Grundlage der darin enthaltenen Werte erstellt werden. Dieser Parameter kann kein Ausdruck sein.
Hinweis: Alle anderen SUMMARIZE-Parameter werden vorher erklärt und hier aus Platzgründen nicht wiederholt.
Hinweise
- Auf die im ROLLUP-Ausdruck erwähnten Spalten kann nicht als Teil von groupBy_columnName-Spalten verwiesen werden.
Beispiel
Im folgenden Beispiel werden den Spalten "Gruppieren nach" des SUMMARIZE-Funktionsaufrufs Rollupzeilen hinzugefügt.
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
In der folgenden Tabelle wird eine Vorschau der Daten angezeigt, wie sie jede Funktion empfangen würde, die den Empfang einer Tabelle erwartet:
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 |
Components |
2008052.706 |
39.9266 |
2005 |
Components |
574256.9865 |
0 |
2006 |
Components |
3428213.05 |
948.7674 |
2007 |
Components |
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 |
ROLLUPGROUP
ROLLUPGROUP() kann zum Berechnen von Zwischensummengruppen verwendet werden. Wird ROLLUPGROUP anstelle von ROLLUP verwendet, wird das gleiche Ergebnis erzielt, indem dem Ergebnis in den groupBy_columnName-Spalten Rollupzeilen hinzugefügt werden. Indem ROLLUPGROUP() in eine ROLLUP-Syntax eingefügt wird, können jedoch partielle Zwischensummen in Rollupzeilen vermieden werden.
Im folgenden Beispiel wird ausschließlich die Gesamtsumme aller Jahre und Kategorien angezeigt. Zwischensummen für die einzelnen Jahre und sämtliche Kategorien sind nicht zu sehen:
SUMMARIZE(ResellerSales_USD
, ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]))
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
In der folgenden Tabelle wird eine Vorschau der Daten angezeigt, wie sie jede Funktion empfangen würde, die den Empfang einer Tabelle erwartet:
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 |
Components |
2008052.706 |
39.9266 |
2005 |
Components |
574256.9865 |
0 |
2006 |
Components |
3428213.05 |
948.7674 |
2007 |
Components |
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 |
SUMMARIZE mit ISSUBTOTAL
Ermöglicht dem Benutzer das Erstellen einer weiteren Spalte in der Summarize-Funktion, die True zurückgibt, wenn die Zeile Teilergebniswerte für die Spalte enthält, die ISSUBTOTAL als Argument übergeben wurde. Anderenfalls wird False zurückgegeben.
SUMMARIZE(<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, ROLLUP(<groupBy_columnName>[,< groupBy_columnName>…])][, <name>, {<expression>|ISSUBTOTAL(<columnName>)}]…)
ISSUBTOTAL-Parameter
- columnName
Der Name einer Spalte in der Tabelle der SUMMARIZE-Funktion oder einer Spalte in einer mit der Tabelle verknüpften Tabelle.
Rückgabewert
Der Wert True, wenn die Zeile einen Teilergebniswert für die als Argument angegebene Spalte enthält, anderenfalls wird False zurückgegeben.
Hinweise
ISSUBTOTAL kann nur im Ausdrucksteil einer SUMMARIZE-Funktion verwendet werden.
ISSUBTOTAL muss eine übereinstimmende name-Spalte vorangestellt werden.
Beispiel
Im folgenden Beispiel wird eine ISSUBTOTAL()-Spalte für jede ROLLUP()-Spalte im angegebenen SUMMARIZE()-Funktionsaufruf generiert.
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])
)
In der folgenden Tabelle wird eine Vorschau der Daten angezeigt, wie sie jede Funktion empfangen würde, die den Empfang einer Tabelle erwartet:
[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 |
Components |
2008052.706 |
39.9266 |
FALSE |
FALSE |
2005 |
Components |
574256.9865 |
0 |
FALSE |
FALSE |
2006 |
Components |
3428213.05 |
948.7674 |
FALSE |
FALSE |
2007 |
Components |
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 |