ALLSELECTED

适用于:计算列计算表度量值视觉计算

从当前查询中的列和行中删除上下文筛选器,同时保留所有其他上下文筛选器或显式筛选器。

ALLSELECTED 函数获取表示查询中的所有行和列的上下文,同时保留除行和列筛选器以外的显式筛选器和上下文。 此函数可用于获取查询中的视觉总计。

语法

ALLSELECTED([<tableName> | <columnName>[, <columnName>[, <columnName>[,…]]]] )

参数

术语 定义
tableName 使用标准 DAX 语法的现有表的名称。 此参数不能是表达式。 此参数是可选的。
columnName 使用标准 DAX 语法的现有列的名称,通常完全限定。 它不能是表达式。 此参数是可选的。

返回值

查询的上下文,不包含任何列和行筛选器。

言论

  • 如果有一个参数,则参数为 tableNamecolumnName。 如果有多个参数,则它们必须是同一表中的列。

  • 此函数不同于 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)筛选器,一个在产品类别组,另一个在促销类型。

注意

如果表达式中有显式筛选器,则这些筛选器也会应用于表达式。