ISFILTERED 函数 (DAX)

当直接筛选 columnName 时,返回 TRUE。 如果列没有筛选器,或由于正在筛选同一个表或相关表中的不同列而发生筛选,则函数返回 FALSE。

语法

ISFILTERED(<columnName>)

参数

  • columnName
    使用标准 DAX 语法的现有列的名称。 它不能是表达式。

返回值

当直接筛选 columnName 时,为 TRUE。

注释

  • 当将一个或多个筛选器应用于该列时,就认为是直接筛选此 columnName;当应用于同一个表或相关表中其他列的某个筛选器也通过筛选 columnName 列而影响该列时,就认为是对该列进行交叉筛选。

  • 当正在筛选 columnName 或相同表或相关表中的其他列时,相关函数 ISCROSSFILTERED 函数 (DAX) 返回 TRUE。

示例

下面的示例创建一个度量值,然后提供不同方案以说明 ISFILTERED() 的行为。 在这些方案可能是下载数据分析表达式 (DAX) 示例数据电子表格之后获得的。

首先,在 [Product] 表中创建以下度量值 [Is ProductName Filtered directly]。

=ISFILTERED(Product[ProductName])

了解 ISFILTERED():

  1. 在创建此度量值后,透视表应显示 [Is ProductName Filtered directly] 为 FALSE,因为根本没有筛选此表达式。 现在,您应看到类似如下的内容:

    Is ProductName Filtered directly

    FALSE

    如果透视表中未显示任何内容,则将 [Is ProductName Filtered directly] 拖到**“值”**框中。

  2. 将 ProductCategory[ProductCategoryName] 拖到 Row Labels 框中;所有值均仍应为 FALSE,而您的表应如下所示:

    Row Labels

    Is ProductName Filtered directly

    Accessories

    FALSE

    Bikes

    FALSE

    Clothing

    FALSE

    Components

    FALSE

    FALSE

    总计

    FALSE

    表包含的值为 FALSE 的原因在于:ProductCategory[ProductCategoryName] 对 Product[ProductName] 进行间接筛选或交叉筛选,而不是对列进行直接筛选。

  3. 将 Product[Status] 拖到 Column Labels 框中;所有值仍应为 FALSE,而您的表应如下所示:

    Is ProductName Filtered directly

    列标签

    行标签

    Current

    总计

    Accessories

    FALSE

    FALSE

    FALSE

    Bikes

    FALSE

    FALSE

    FALSE

    Clothing

    FALSE

    FALSE

    FALSE

    Components

    FALSE

    FALSE

    FALSE

    FALSE

    FALSE

    FALSE

    总计

    FALSE

    FALSE

    FALSE

    此表仍具有许多 FALSE 值,因为 Product[Status] 不直接筛选 Product[Name]。

  4. 此过程的最后一步是将 Product[Name] 拖到**“报表筛选器”**框中。 此时应未更改任何内容;然而,一旦您选择了产品名称,表值应立即更改为 TRUE。 根据您选择的产品,表应如下所示:

    ProductName

    Mountain-400-W Silver, 38

    Is ProductName Filtered directly

    列标签

    行标签

    Current

    总计

    Accessories

    TRUE

    TRUE

    Bikes

    TRUE

    TRUE

    Clothing

    TRUE

    TRUE

    Components

    TRUE

    TRUE

    TRUE

    TRUE

    总计

    TRUE

    TRUE

  5. 总之,通过 ISFILTERED() 可以确定是否在对表达式进行计算的上下文中直接筛选 columnName。

此示例使用 DAX_AdventureWorks 示例电子表格模型

请参阅

参考

ISCROSSFILTERED 函数 (DAX)

FILTERS 函数 (DAX)

HASONEFILTER 函数 (DAX)

HASONEVALUE 函数 (DAX)