带有选项的 SUMMARIZE 函数

描述

在阅读此变体之前,请先阅读 DAX SUMMARIZE 函数。

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

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

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

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

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

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

Syntax

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 函数)

Sr.No. 参数与说明
1

groupBy_columnName

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

参数(ISSUBTOTAL 函数)

Sr.No. 参数与说明
1

columnName

SUMMARIZE 函数表中任意列的名称或与表相关的表中任意列的名称。

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

返回值

包含所选列的表groupBy_columnName 参数和由 name 参数设计的汇总列以及另外将行汇总到 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])
) 

示例 – ROLLUP 与 ROLLUPGROUP

= 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.html