返回由一组列指定的摘要表。
语法
SUMMARIZECOLUMNS ( <分组列>, [<分组列>], [<表筛选器>], [ [<列名>, <表达式>] … ] )
参数 | 属性 | 描述 |
分组列 | 可选 可重复 |
用于分组的列,不能使用表达式。可以被 ROLLUP 函数调用以计算小计 |
表筛选器 | 可选 可重复 |
添加到分组列参数的筛选上下文中的表表达式。在执行 CROSSFILTER/Auto-Exists 之前进行筛选 |
列名 | 可选 可重复 |
派生列的列名 |
表达式 | 可选 可重复 |
派生列使用的表达式,在筛选上下文中计值。 |
返回值
表
整个表或具有一列或多列的表。
包含所有分组列的摘要表,自动删除所有派生列结果都为空的行,也就是说派生列使用的表达式中至少有一个返回非空值的时候,其所在行才包括在结果表中。
备注
SUMMARIZECOLUMNS 不支持上下文转换,而 Excel 和 Power BI 通过上下文转换来计算报告中的度量值,所以它不能用于绝大部分度量值中。
2024 年 7 月的 Power BI Desktop 可以将 SUMMARIZECOLUMNS 用于度量值,此函数已经可以识别上下文转换,并在行上下文中计算。即便如此,我建议还是仅在查询时使用此函数。
SUMMARIZECOLUMNS 总是将同一表上的所有筛选器合并成一个筛选器。此筛选器生成的组合表仅包含 SUMMARIZECOLUMNS 中显式列出的列,作为分组列或筛选列。这种 Auto-Exists 行为对 FILTERS 等函数有副作用。
各版本对 SUMMARIZECOLUMNS 的支持情况:
- Excel 2010: 不支持
- Excel 2013: 不支持
- Excel 2016: 支持,但不接受任何外部筛选器¹
- Analysis Services 2012: 不支持
- Analysis Services 2014: 不支持
- Analysis Services 2016: 支持
- Power BI Desktop: 支持
¹注:在 Excel 2016 中,SUMMARIZECOLUMNS 不接受任何外部筛选器,你无法使用透视表构造的筛选条件或 CALCULATE 筛选它。这是早期版本的一个限制。
示例
SUMMARIZECOLUMNS ( 'Product'[Category], 'Date'[Calendar Year], "Amount", [Sales Amount] ) ORDER BY 'Product'[Category], 'Date'[Calendar Year]
深入了解 SUMMARIZECOLUMNS 函数:
- MSDN 文档:SUMMARIZECOLUMNS
- DAX Guide:SUMMARIZECOLUMNS
说点什么