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():
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.
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.
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.
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
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.