ALLEXCEPT

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

删除表中的所有上下文筛选器,但已应用于指定列的筛选器除外。

语法

ALLEXCEPT(<table>,<column>[,<column>[,…]])

参数

术语 定义
table 删除所有上下文筛选器的表,后续参数中指定的列的筛选器除外。
column 必须保留上下文筛选器的列。

ALLEXCEPT 函数的第一个参数必须是对基表的引用。 所有后续参数都必须引用基列。 不能对 ALLEXCEPT 函数使用表表达式或列表达式。

返回值

删除了除指定列上的筛选器以外的所有筛选器的表。

言论

  • 此函数本身不使用,但用作中间函数,可用于更改执行其他一些计算的结果集。

  • 可以在不同的方案中使用 ALL 和 ALLEXCEPT:

    函数和用法 描述
    ALL(表) 从指定表中删除所有筛选器。 实际上,ALL(Table)返回表中的所有值,从上下文中删除任何筛选器,否则可能已应用。 当你使用许多级别的分组时,此函数非常有用,并且想要创建一个计算,用于创建聚合值与总值的比率。
    ALL (Column[, Column[, ...]]) 从表中的指定列中删除所有筛选器;表中其他列的所有其他筛选器仍适用。 所有列参数都必须来自同一个表。 如果要删除一个或多个特定列的上下文筛选器并保留所有其他上下文筛选器,则 ALL(列)变体非常有用。
    ALLEXCEPT(表, Column1 [,Column2]...) 删除表中的所有上下文筛选器,但应用于指定列的筛选器除外。 这是一种方便的快捷方式,用于在表中删除许多列(但不是全部)上的筛选器的情况。
  • 在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。

以下度量值公式对SalesAmount_USD求和,并使用 ALLEXCEPT 函数删除 DateTime 表上的任何上下文筛选器,除非筛选器已应用于 CalendarYear 列。

= CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), ALLEXCEPT(DateTime, DateTime[CalendarYear]))

由于公式使用 ALLEXCEPT,因此每当表 DateTime 中除 CalendarYear 外的任何列用于对可视化效果进行切片时,该公式都将删除任何切片器筛选器,并提供等于SalesAmount_USD之和的值。 但是,如果列 CalendarYear 用于切片可视化效果,则结果会有所不同。 由于 CalendarYear 被指定为 ALLEXCEPT的参数,因此当数据在年份上切片时,将在行级别对年份应用筛选器

筛选器函数ALL 函数FILTER 函数