Función ISCROSSFILTERED (DAX)
Devuelve TRUE si se filtra columnName, u otra columna de la misma tabla o una tabla relacionada.
Sintaxis
ISCROSSFILTERED(<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 se filtra columnName, u otra columna de la misma tabla o una tabla relacionada. En caso contrario, FALSE.
Comentarios
Se dice que 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 columnName porque también la filtra. Se dice que una columna está filtrada directamente cuando se le aplican filtros.
La función relacionada Función ISFILTERED (DAX) devuelve TRUE si columnName se filtra directamente.
Ejemplo
En el ejemplo siguiente se crea una medida y, después, se presentan diferentes escenarios para explicar el comportamiento de ISCROSSFILTERED(). Los escenarios se pueden seguir descargando la hoja de cálculo DAX_AdventureWorks.
Primero, cree la medida siguiente [Is ProductName Cross Filtered] en la tabla [Product].
=ISCROSSFILTERED(Product[ProductName])
Descripción de ISCROSSFILTERED():
Después de crear la medida, la tabla dinámica debe mostrar que [Is ProductName Cross Filtered] es FALSE, porque la expresión no se está filtrando en absoluto. Ahora, debe tener algo parecido a:
Is ProductName Cross Filtered
FALSE
Si no aparece nada en la tabla dinámica, arrastre la columna [Is ProductName Cross Filtered] al cuadro Valores.
Arrastre DateTime[CalendarYear] al cuadro Etiquetas de columna y SalesTerritory[SalesTerritoryGroup] al cuadro Etiquetas de fila; todos los valores deben aparecer como FALSE. Ahora, debe tener algo parecido a:
Is Product Name CrossFiltered
Etiquetas de columna
Etiquetas de fila
2005
2006
2007
2008
Grand Total
Europe
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
N/D
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
North America
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Pacific
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Grand Total
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Todas las celdas tienen el valor FALSE porque ni DateTime[CalendarYear] ni SalesTerritory[SalesTerritoryGroup] afectan a Product[ProductName].
Arrastre la columna ProductCategory[ProductCategoryName] al cuadro Segmentaciones de datos horizontales y ProductSubCategory[ProductSubCategoryName] al cuadro Segmentaciones de datos verticales. Todos los valores deben seguir apareciendo como FALSE, porque cuando agrega una columna al cuadro de segmentaciones de datos aún no ha seleccionado un conjunto de segmentación. Por consiguiente, debería tener algo parecido a esto:
ProductCategoryName
Accessories
Bikes
Clothing
Components
ProductSubcategoryName
Is Product Name CrossFiltered
Etiquetas de columna
Bib-Shorts
Etiquetas de fila
2005
2006
2007
2008
Grand Total
Bike-Racks
Europe
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bike-Stands
N/D
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bottles and Cages
North America
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bottom Brackets
Pacific
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Brakes
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Caps
Grand Total
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Chains
Cleaners
Cranksets
Derailleurs
Fenders
Forks
Gloves
Handlebars
Headsets
Seleccione cualquier artículo en las segmentaciones de datos y todas las celdas de la tabla cambiarán a TRUE, porque ahora se está filtrando la columna Product[ProductName] a través de las tablas relacionadas ProductCategory y ProductSubcategory. Los resultados deben tener un aspecto parecido al siguiente:
ProductCategoryName
Accessories
Bikes
Clothing
Components
ProductSubcategoryName
Is Product Name CrossFiltered
Etiquetas de columna
Bib-Shorts
Etiquetas de fila
2005
2006
2007
2008
Grand Total
Bike-Racks
Europe
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bike-Stands
N/D
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bottles and Cages
North America
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bottom Brackets
Pacific
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Brakes
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Caps
Grand Total
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Chains
Cleaners
Cranksets
Derailleurs
Fenders
Forks
Gloves
Handlebars
Headsets
Ahora puede reemplazar las segmentaciones de datos con Product[ProductName] y Product[ModelName]. Si no selecciona ningún artículo en ninguna segmentación de datos, la medida devuelve FALSE; sin embargo, si selecciona un artículo de segmentación de datos, la medida devuelve TRUE porque está filtrando Product[ProductName] mediante sí misma o mediante Product[ModelName].
En conclusión, ISCROSSFILTERED() le permite determinar si columnName se está filtrando en el contexto en que se evalúa la expresión de DAX.
En este ejemplo se usa el modelo de la hoja de cálculo de ejemplo DAX_AdventureWorks.