ALLSELECTED
从当前查询中的列和行中删除上下文筛选器,同时保留所有其他上下文筛选器或显式筛选器。
ALLSELECTED 函数获取表示查询中的所有行和列的上下文,同时保留除行和列筛选器以外的显式筛选器和上下文。 此函数可用于获取查询中的视觉总计。
语法
ALLSELECTED([<tableName> | <columnName>[, <columnName>[, <columnName>[,…]]]] )
参数
术语 | 定义 |
---|---|
tableName |
使用标准 DAX 语法的现有表的名称。 此参数不能是表达式。 此参数是可选的。 |
columnName |
使用标准 DAX 语法的现有列的名称,通常完全限定。 它不能是表达式。 此参数是可选的。 |
返回值
查询的上下文,不包含任何列和行筛选器。
言论
如果有一个参数,则参数为
tableName
或columnName
。 如果有多个参数,则它们必须是同一表中的列。此函数不同于 ALL(),因为它保留查询中显式设置的所有筛选器,并且保留除行筛选器和列筛选器以外的所有上下文筛选器。
在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
例
以下示例演示如何使用 DAX 表达式在表报表中生成不同级别的视觉总计。 在报表中,前两个筛选器(2)已应用于经销商销售数据;一个在销售区域组 = 欧洲 另一个在促销类型 = 批量折扣。 应用筛选器后,可以为整个报表、所有年份或所有产品类别计算视觉总计。 此外,出于说明目的,也会获取所有经销商销售的总计,从而删除报表中的所有筛选器。 计算以下 DAX 表达式会导致表中包含使用 Visual Totals 生成表所需的所有信息。
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]
在 SQL Server Management Studio 中针对 AdventureWorks DW 表格模型执行上述表达式后,你将获得以下结果:
[产品类别名称] | [日历年份] | [经销商销售金额] | [Reseller Grand Total] | [Reseller Visual Total] | [所有日历年份的经销商视觉总计] | [所有产品类别名称的经销商视觉总计] |
---|---|---|---|---|---|---|
辅料 | 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 |
报表中的列为:
经销商销售金额:经销商销售年度和产品类别的实际价值。 此值显示在报表中心的单元格中,位于年份和餐饮的交集处。
经销商“所有日历年”的“视觉总计”是所有年份的产品类别的总值。 此值显示在给定产品类别的列或行的末尾以及报表中所有年份。
经销商所有产品类别名称的 Visual Total 在所有产品类别中为一年的总值。 此值显示在给定年份的列或行的末尾以及报表中的所有产品类别中。
经销商视觉对象总计 所有年份和产品类别的总值。 此值通常显示在表最右下角。
在应用任何筛选器之前,经销商总计是所有经销商销售的总和;应注意到 [Reseller Visual Total] 的差异。 请记住,此报表包括两个(2)筛选器,一个在产品类别组,另一个在促销类型。
注意
如果表达式中有显式筛选器,则这些筛选器也会应用于表达式。