ALLSELECTED
删除当前查询的列和行中的上下文筛选器,同时保留所有其他上下文筛选器或显式筛选器。
ALLSELECTED 函数获取表示查询中所有行和列的上下文,同时保留除行和列筛选器以外的显式筛选器和上下文。 函数可用于获取查询中的直观合计。
语法
ALLSELECTED([<tableName> | <columnName>[, <columnName>[, <columnName>[,…]]]] )
parameters
术语 | 定义 |
---|---|
tableName | 使用标准 DAX 语法的现有表的名称。 此参数不能是表达式。 此参数可选。 |
columnName | 使用标准 DAX 语法的现有列的名称,通常是完全限定的名称。 它不能是表达式。 此参数可选。 |
返回值
不带任何列和行筛选器的查询的上下文。
备注
如果有一个参数,则该参数为 tableName 或 columnName。 如果有多个参数,则它们必须是同一表中的列。
此函数与 ALL() 不同,因为它保留了在查询中显式设置的所有筛选器,并且保留了除行和列筛选器之外的所有上下文筛选器。
在已计算的列或行级安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
示例
下面的示例演示如何使用 DAX 表达式在表报表中生成不同级别的直观合计。 在报表中,前面的两 (2) 个筛选器已应用于经销商销售数据;一个是 Sales Territory Group = Europe,另一个是 Promotion Type = Volume Discount。 应用筛选器后,就可以计算整个报告、所有年份或所有产品类别的直观合计。 此外,出于说明目的,消除了报表中的所有筛选器,得到所有经销商销售额的总和。 计算下列 DAX 表达式得到一个表,其中包含构建含直观合计的表所需的所有信息。
define measure 'Reseller Sales'[Reseller Sales Amount]=sum('Reseller Sales'[Sales Amount]) measure 'Reseller Sales'[Reseller Grand Total]=calculate(sum('Reseller Sales'[Sales Amount]), ALL('Reseller Sales')) measure 'Reseller Sales'[Reseller Visual Total]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED()) measure 'Reseller Sales'[Reseller Visual Total for All of Calendar Year]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED('Date'[Calendar Year])) measure 'Reseller Sales'[Reseller Visual Total for All of Product Category Name]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED('Product Category'[Product Category Name])) evaluate CalculateTable( //CT table expression summarize(//summarize table expression crossjoin(distinct('Product Category'[Product Category Name]), distinct('Date'[Calendar Year])) //First Group by expression , 'Product Category'[Product Category Name] //Second Group by expression , 'Date'[Calendar Year] //Summary expressions , "Reseller Sales Amount", [Reseller Sales Amount] , "Reseller Grand Total", [Reseller Grand Total] , "Reseller Visual Total", [Reseller Visual Total] , "Reseller Visual Total for All of Calendar Year", [Reseller Visual Total for All of Calendar Year] , "Reseller Visual Total for All of Product Category Name", [Reseller Visual Total for All of Product Category Name] ) //CT filters , 'Sales Territory'[Sales Territory Group]="Europe", 'Promotion'[Promotion Type]="Volume Discount" ) order by [Product Category Name], [Calendar Year]
对照 AdventureWorks DW 表格模型在 SQL Server Management Studio 中执行上述表达式后,获得以下结果:
[产品类别名称] | [日历年] | [经销商销售额] | [经销商总数] | [经销商直观合计] | [经销商所有日历年的直观合计] | [经销商的所有产品类别名称的直观合计] |
---|---|---|---|---|---|---|
配件 | 2000 | 80450596.9823 | 877006.7987 | 38786.018 | ||
配件 | 2001 | 80450596.9823 | 877006.7987 | 38786.018 | ||
配件 | 2002 | 625.7933 | 80450596.9823 | 877006.7987 | 38786.018 | 91495.3104 |
配件 | 2003 | 26037.3132 | 80450596.9823 | 877006.7987 | 38786.018 | 572927.0136 |
配件 | 2004 | 12122.9115 | 80450596.9823 | 877006.7987 | 38786.018 | 212584.4747 |
配件 | 2005 | 80450596.9823 | 877006.7987 | 38786.018 | ||
配件 | 2006 | 80450596.9823 | 877006.7987 | 38786.018 | ||
自行车 | 2000 | 80450596.9823 | 877006.7987 | 689287.7939 | ||
自行车 | 2001 | 80450596.9823 | 877006.7987 | 689287.7939 | ||
自行车 | 2002 | 73778.938 | 80450596.9823 | 877006.7987 | 689287.7939 | 91495.3104 |
自行车 | 2003 | 439771.4136 | 80450596.9823 | 877006.7987 | 689287.7939 | 572927.0136 |
自行车 | 2004 | 175737.4423 | 80450596.9823 | 877006.7987 | 689287.7939 | 212584.4747 |
自行车 | 2005 | 80450596.9823 | 877006.7987 | 689287.7939 | ||
自行车 | 2006 | 80450596.9823 | 877006.7987 | 689287.7939 | ||
服装 | 2000 | 80450596.9823 | 877006.7987 | 95090.7757 | ||
服装 | 2001 | 80450596.9823 | 877006.7987 | 95090.7757 | ||
服装 | 2002 | 12132.4334 | 80450596.9823 | 877006.7987 | 95090.7757 | 91495.3104 |
服装 | 2003 | 58234.2214 | 80450596.9823 | 877006.7987 | 95090.7757 | 572927.0136 |
服装 | 2004 | 24724.1209 | 80450596.9823 | 877006.7987 | 95090.7757 | 212584.4747 |
服装 | 2005 | 80450596.9823 | 877006.7987 | 95090.7757 | ||
服装 | 2006 | 80450596.9823 | 877006.7987 | 95090.7757 | ||
组件 | 2000 | 80450596.9823 | 877006.7987 | 53842.2111 | ||
组件 | 2001 | 80450596.9823 | 877006.7987 | 53842.2111 | ||
组件 | 2002 | 4958.1457 | 80450596.9823 | 877006.7987 | 53842.2111 | 91495.3104 |
组件 | 2003 | 48884.0654 | 80450596.9823 | 877006.7987 | 53842.2111 | 572927.0136 |
组件 | 2004 | 80450596.9823 | 877006.7987 | 53842.2111 | 212584.4747 | |
组件 | 2005 | 80450596.9823 | 877006.7987 | 53842.2111 | ||
组件 | 2006 | 80450596.9823 | 877006.7987 | 53842.2111 |
报表中的列包括:
Reseller Sales Amount
该年份和产品类别的经销商销售额实际值。 此值显示在报表中心的单元格中,位于年份和类别的交叉点处。
经销商的“所有日历年”的直观合计
某个产品类别所有年份的总价值。 此值出现在给定产品类别的列或行的末尾,并贯穿报表中的所有年份。
经销商的“所有产品类别名称”的直观合计
所有产品类别某一年份的总价值。 此值出现在给定年份的列或行的末尾,并涵盖了报表中的所有产品类别。
经销商直观合计
所有年份和产品类别的总价值。 此值通常显示在表的右下角。
经销商总数
这是在应用任何筛选器之前所有经销商销售额的总计;可以看到与[经销商直观合计]的差异。 请记住,此报表包含两 (2) 个筛选器,一个位于“产品类别组”,另一个位于“促销类型”中。
注意
如果表达式中有显式筛选器,这些筛选器也会应用于表达式。