Función ISFILTERED (DAX)

Devuelve TRUE si columnName se está filtrando directamente. Si no hay ningún filtro en la columna, o si el filtrado tiene lugar porque se está filtrando otra columna de la misma tabla o de tabla relacionada, la función devuelve FALSE.

Sintaxis

ISFILTERED(<columnName>)

Parámetros

  • columnName
    Nombre de una columna existente, con la sintaxis estándar de DAX. No puede ser una expresión.

Valor devuelto

TRUE si columnName se está filtrando directamente.

Comentarios

  • Se dice que columnName se filtra directamente cuando los filtros se aplican a la columna. Se dice que una columna está afectada por un filtro cruzado cuando un filtro aplicado a otra columna de la misma tabla o de una tabla relacionada afecta a la columna columnName y también la filtra.

  • La función Función ISCROSSFILTERED (DAX) relacionada devuelve TRUE si se filtra columnName u otra columna de la misma tabla o una tabla relacionada.

Ejemplo

En el ejemplo siguiente se crea una medida y, después, se muestran diferentes escenarios para explicar el comportamiento de ISFILTERED(). Los escenarios se pueden ver descargando la hoja de cálculo Expresiones de análisis de datos (DAX).

Primero, cree la medida siguiente [Is ProductName Filtered directly] en la tabla [Product].

=ISFILTERED(Product[ProductName])

Descripción de ISFILTERED():

  1. Después de crear la medida, la tabla dinámica debe mostrar que [Is ProductName Filtered directly] es FALSE, porque la expresión no se está filtrando en absoluto. Ahora, debe tener algo parecido a:

    Is ProductName Filtered directly

    FALSE

    Si no hay nada en la tabla dinámica, arrastre [Is ProductName Filtered directly] al cuadro Values.

  2. Arrastre ProductCategory[ProductCategoryName] al cuadro Row Labels; todos los valores deben seguir siendo FALSE y la tabla debe tener un aspecto parecido a este:

    Etiquetas de fila

    Is ProductName Filtered directly

    Accessories

    FALSE

    Bikes

    FALSE

    Clothing

    FALSE

    Components

    FALSE

    FALSE

    Grand Total

    FALSE

    El motivo por el que la tabla contiene valores FALSE es que ProductCategory[ProductCategoryName] filtra de forma indirecta o cruzada Product[ProductName], pero no es un filtro directo de la columna.

  3. Arrastre Product[Status] al cuadro Etiquetas de columna; todos los valores deben seguir siendo FALSE y la tabla debe tener un aspecto parecido a este:

    Is ProductName Filtered directly

    Etiquetas de columna

    Etiquetas de fila

    Current

    Grand Total

    Accessories

    FALSE

    FALSE

    FALSE

    Bikes

    FALSE

    FALSE

    FALSE

    Clothing

    FALSE

    FALSE

    FALSE

    Components

    FALSE

    FALSE

    FALSE

    FALSE

    FALSE

    FALSE

    Grand Total

    FALSE

    FALSE

    FALSE

    La tabla tiene todavía muchos valores FALSE, porque Product[Status] no filtra Product[Name] directamente.

  4. El último paso de este proceso es arrastrar Product[Name] al cuadro Report Filter. En este momento, no debe haber cambiado nada; sin embargo, una vez que haya seleccionado un nombre de producto, los valores de la tabla deben cambiar a TRUE. Dependiendo del producto que haya seleccionado, la tabla debe tener un aspecto parecido a este:

    ProductName

    Mountain-400-W Silver, 38

    Is ProductName Filtered directly

    Etiquetas de columna

    Etiquetas de fila

    Current

    Grand Total

    Accessories

    TRUE

    TRUE

    Bikes

    TRUE

    TRUE

    Clothing

    TRUE

    TRUE

    Components

    TRUE

    TRUE

    TRUE

    TRUE

    Grand Total

    TRUE

    TRUE

  5. En conclusión, ISFILTERED() le permite determinar si columnName se está filtrando directamente en el contexto en que se evalúa la expresión.

En este ejemplo se usa el modelo de la hoja de cálculo de ejemplo DAX_AdventureWorks.

Vea también

Referencia

Función ISCROSSFILTERED (DAX)

Función FILTERS (DAX)

Función HASONEFILTER (DAX)

Función HASONEVALUE (DAX)