Freigeben über


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

  1. 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.

  2. groupBy_columnName muss entweder in table oder in einer mit table verknüpften Tabelle enthalten sein.

  3. Jeder Name muss in doppelte Anführungszeichen eingeschlossen sein.

  4. 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