带选项的 SUMMARIZE 函数



描述

阅读 DAX SUMMARIZE 函数后再阅读此变体。

您可以在 SUMMARIZE 函数中使用以下高级选项:

  • ROLLUP 函数
  • ROLLUPGROUP 函数
  • ISSUBTOTAL 函数

在 SUMMARIZE 函数中使用这些函数时,您将获得不同的结果。

  • 如果使用 ROLLUP 函数或 ROLLUPGROUP 函数,则 SUMMARIZE 函数的行为会通过向 groupBy_columnName 列的结果中添加汇总行来修改。

  • 如果在 ROLLUP 函数中使用 ROLLUPGROUP 函数,则可以防止汇总行中的部分小计。

  • 如果在 SUMMARIZE 函数的表达式部分使用 ISSUBTOTAL 函数,则您将在结果表中创建另一列,其中包含 ISSUBTOTAL 返回的逻辑值。如果该行包含作为 ISSUBTOTAL 函数参数给出的列的小计值,则该值为 TRUE;否则为 FALSE。

语法

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

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

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

SUMMARIZE (<table>, <groupBy_columnName>, [<groupBy_columnName>] …, 
   [ROLLUP (<groupBy_columnName>, [<groupBy_columnName> …])],
   [<name>, {<expression> | ISSUBTOTAL (<columnName>)}] …) 

参数(ROLLUP/ROLLUPGROUP 函数)

序号 参数和描述
1

groupBy_columnName

现有列的限定名称,用于根据其中找到的值创建汇总组。此参数不能是表达式。

参数(ISSUBTOTAL 函数)

序号 参数和描述
1

columnName

SUMMARIZE 函数的表中任何列的名称,或与该表相关的表中任何列的名称。

SUMMARIZE 函数的其他参数如 DAX SUMMARIZE 函数中所述。

返回值

一个表,其中包含 groupBy_columnName 参数的选择列和名称参数设计的汇总列,此外还有 groupBy_columnName 列的汇总行。如果在 ROLLUP 中使用 ROLLUPGROUP,则不会显示小计。

如果使用 SUBTOTAL 函数:

附加一列,如果该行包含作为参数给出的列的小计值,则为 TRUE,否则为 FALSE。

备注

ROLLUP 函数中提到的列不能作为 SUMMARIZE 函数的 groupBy_columnName 参数引用。

ROLLUP 函数只能用作 SUMMARIZE 函数的参数,不能用于其他任何地方。

ROLLUPGROUP 函数只能用作以下参数,不能用于其他任何地方。

  • SUMMARIZE 函数,或
  • ROLLUP 函数

ISSUBTOTAL 函数只能用于 SUMMARIZE 函数的表达式部分。

ISSUBTOTAL 必须以匹配的名称列开头

示例 - ROLLUP

= SUMMARIZE ( 
   SalesTarget, ROLLUP (SalesTarget[SalespersonID]), 
   SalesTarget[SalesTarget],"MaxTarget",MAX (SalesTarget[SalesTarget])
) 

示例 – 带 ROLLUPGROUP 的 ROLLUP

= SUMMARIZE ( 
   SalesTarget,ROLLUP (ROLLUPGROUP (SalesTarget[SalespersonID])),
      SalesTarget[SalesTarget],"MaxTarget",MAX(SalesTarget[SalesTarget])
) 

示例 - ISSUBTOTAL

= SUMMARIZE ( 
   SalesTarget,ROLLUP (ROLLUPGROUP (SalesTarget[SalespersonID])), 
      SalesTarget[SalesTarget],"MaxTarget",MAX (SalesTarget[SalesTarget]), 
      "IsSubTotalSalesTarget", ISSUBTOTAL (SalesTarget[SalesTarget])
) 
dax_functions_aggregation.htm
广告