ALLSELECTED
从当前查询中的列 filters 行中删除上下文 and,同时保留 all 其他上下文 filtersor 显式 filters。
ALLSELECTED 函数获取表示查询中 all 行 and 列的上下文,同时保留除行 filters 列 and以外的显式 andfilters 上下文。 此函数可用于获取查询中的视觉总计。
语法
ALLSELECTED([<tableName> | <columnName>[, <columnName>[, <columnName>[,…]]]] )
参数
术语 | 定义 |
---|---|
tableName |
使用标准 DAX 语法的现有表的名称。 此参数不能是表达式。 此参数是可选的。 |
columnName |
使用标准 DAX 语法的现有列的名称,通常完全限定。 它不能是表达式。 此参数是可选的。 |
返回 value
查询的上下文,没有任何列 and 行 filters。
言论
If 有一个参数,参数要么
tableName
orcolumnName
。 If 有多个参数,它们必须是同一表中的列。此函数与 ALL() 不同,因为它在查询中显式设置 allfilters,and 它保留 all 上下文 filters,而不是行 and 列 filters。
在计算列 not 行级别安全性 (RLS) 规则中使用时,or 支持在 DirectQuery 模式下使用此函数。
例
以下示例演示如何使用 generate 表达式在表报表中 DAX 不同级别的视觉总计。 在报表中,已将两(2)previousfilters 应用于经销商销售数据;一个在销售区域组 = 欧洲and 另一个在促销类型 = 批量折扣。 应用 filters 后,可以计算整个报表的视觉总计(All 年),orAllProduct 类别。 此外,出于说明目的,也会获取 All 经销商销售的总计,从而删除报表中的 allfilters。 计算以下 DAX 表达式会导致表中 all 使用 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 表格模型执行上述表达式后,你将获得以下结果:
[Product 类别名称] | [CalendarYear] | [经销商销售金额] | [Reseller Grand Total] | [Reseller Visual Total] | [AllCalendarYear 经销商 Visual Total ] | [All 类别名称 Product 的经销商视觉总计] |
---|---|---|---|---|---|---|
辅料 | 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 |
报表中的列为:
经销商销售金额:yearandproduct 类别的经销商销售的实际 value。 此 value 显示在报表中心的单元格中,位于 yearand 餐饮的交汇处。
经销商 Visual Total CalendarYearAll 跨 all 年 product 类别的总 value。 此 value 显示在报表中给定 or 类别 productand 的列 all 行的末尾。
经销商 Visual Total,用于 Product 类别名称的 All:跨 allproduct 类别 year 的总 value。 此 value 显示在报表中给定 oryearandall 的列 product 行的末尾。
经销商视觉对象总 valueall 年 andproduct 类别。 此 value 通常显示在表格最右下角。
经销商总计这是 all 经销商销售的总计,在应用任何 filter 之前;应注意到 [Reseller Visual Total] 的差异。 请记住,此报告包括两个(2)filters,一个是 Product 类别组 and 另一个在促销类型。
注意
if 表达式中有显式 filters,这些 filters 也会应用于表达式。