SUMMARIZE

適用於:匯出數據行匯出數據表量值視覺計算

傳回對群組集合進行所要求總計的摘要資料表。

語法

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

參數

詞彙 [定義]
table 傳回資料表的所有 DAX 運算式。
groupBy_ColumnName (選擇性) 現有資料行的完整名稱,此資料行要用來根據在其中找到的值建立摘要群組。 此參數不能是運算式。
NAME 提供給總計或摘要資料行的名稱,以雙引號括住。
expression 傳回單一純量值的所有 DAX 運算式,其中運算式會 (針對每個資料列/內容) 多次評估。

傳回值

資料表,其包含針對 groupBy_columnName 引數選取的資料行,以及 name 引數所指定的摘要資料行。

備註

  • 您定義名稱的每個資料行都必須有相對應運算式;否則會傳回錯誤。 第一個引數 name 會定義結果中的資料行名稱。 第二個引數 expression 會定義為了取得該資料行中每個資料列的值而執行的計算。

  • groupBy_columnName 必須在 tabletable 的相關資料表中。

  • 每個名稱都必須以雙引號括住。

  • 此函式會依一或多個 groupBy_columnName 資料行的值,將一組選取的資料列分組為一組摘要資料列。 每個群組會傳回一個資料列。

  • 在計算結果欄或資料列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。

範例

下列範例會傳回依日曆年度和產品類別名稱分組的轉銷商銷售摘要,此結果資料表可讓您依年份和產品類別對轉銷商銷售進行分析。

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

下表顯示任何預期接收資料表的函式,其會顯示資料的預覽:

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [銷售金額 (美金)] [折扣金額 (美金)]
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 元件 2008052.706 39.9266
2005 元件 574256.9865 0
2006 元件 3428213.05 948.7674
2007 元件 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 配件 153299.924 865.5945
2005 配件 18594.4782 4.293
2006 配件 86612.7463 1061.4872
2007 配件 275794.8403 4756.6546

使用 ROLLUP

新增 ROLLUP 語法會藉由將彙總資料列新增至 groupBy_columnName 資料行的結果,以修改 SUMMARIZE 函式的行為。 ROLLUP 只能用在 SUMMARIZE 運算式內。

範例

下列範例會將彙總資料列新增至 SUMMARIZE 函式呼叫的 Group-By 資料行:

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

傳回下列資料表,

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [銷售金額 (美金)] [折扣金額 (美金)]
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 元件 2008052.706 39.9266
2005 元件 574256.9865 0
2006 元件 3428213.05 948.7674
2007 元件 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 配件 153299.924 865.5945
2005 配件 18594.4782 4.293
2006 配件 86612.7463 1061.4872
2007 配件 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

ROLLUP 語法中新增 ROLLUPGROUP 可用來避免彙總資料列中的部分小計。 ROLLUPGROUP 只能在 ROLLUPROLLUPADDISSUBTOTALROLLUPISSUBTOTAL 運算式內使用。

範例

下列範例只會顯示所有年份和類別的總計,而不含所有類別的每年小計:

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

傳回下列資料表,

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [銷售金額 (美金)] [折扣金額 (美金)]
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 元件 2008052.706 39.9266
2005 元件 574256.9865 0
2006 元件 3428213.05 948.7674
2007 元件 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 配件 153299.924 865.5945
2005 配件 18594.4782 4.293
2006 配件 86612.7463 1061.4872
2007 配件 275794.8403 4756.6546
76494758.25 527507.9262

使用 ISSUBTOTAL

使用 ISSUBTOTAL,您可以在 SUMMARIZE 運算式中建立另一個資料行。如果資料列包含指定為 ISSUBTOTAL 引數的資料行小計值,則會傳回 True;否則會傳回 False。 ISSUBTOTAL 只能用在 SUMMARIZE 運算式內。

範例

下列範例會針對指定 SUMMARIZE 函式呼叫中的每個 ROLLUP 資料行,產生一個 ISSUBTOTAL 資料行:

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])  
)  

傳回下列資料表,

[為 DateTimeCalendarYear 的小計] [為 ProductCategoryName 的小計] DateTime[CalendarYear] ProductCategory[ProductCategoryName] [銷售金額 (美金)] [折扣金額 (美金)]
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 元件 2008052.706 39.9266
FALSE FALSE 2005 元件 574256.9865 0
FALSE FALSE 2006 元件 3428213.05 948.7674
FALSE FALSE 2007 元件 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 配件 153299.924 865.5945
FALSE FALSE 2005 配件 18594.4782 4.293
FALSE FALSE 2006 配件 86612.7463 1061.4872
FALSE FALSE 2007 配件 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