共用方式為


SUMMARIZE

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

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

語法

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

參數

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

傳回值

數據表,其中包含 groupBy_columnName 自變數的選取數據行,以及名稱自變數所設計的摘要數據行。

備註

  • 您定義名稱的每個數據行都必須有對應的表達式;否則會傳回錯誤。 第一個自變數 name 會定義結果中的數據行名稱。 第二個自變數expression會定義執行以取得該數據行中每個數據列值的計算。

  • groupBy_columnName必須位於 table 或相關資料表中,才能 table

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

  • 函式會將一組選取的數據列,依一或多個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,否則會傳回 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