Função ISCROSSFILTERED (DAX)
Retorna TRUE quando columnName ou outra coluna na mesma tabela ou em uma tabela relacionada está sendo filtrada.
Sintaxe
ISCROSSFILTERED(<columnName>)
Parâmetros
- columnName
O nome de uma coluna existente que usa a sintaxe DAX padrão. Ele não pode ser uma expressão.
Valor de retorno
TRUE quando columnName ou outra coluna na mesma tabela ou em uma tabela relacionada está sendo filtrada. Caso contrário, retorna FALSE.
Comentários
Uma coluna é considerada com filtros cruzados quando um filtro aplicado a outra coluna na mesma tabela ou em uma tabela relacionada afeta columnName filtrando-a. Uma coluna é considerada filtrada diretamente quando o filtro ou os filtros são aplicados na coluna.
A função Função ISFILTERED (DAX) relacionada retorna TRUE quando columnName é filtrada diretamente.
Exemplo
O exemplo a seguir cria uma medida e depois apresenta cenários diferentes para explicar o comportamento de ISCROSSFILTERED(). Para acompanhar os cenários, baixe a planilha DAX_AdventureWorks.
Primeiro, crie a medida de tabela [Is ProductName Cross Filtered] a seguir.
=ISCROSSFILTERED(Product[ProductName])
Compreendendo ISCROSSFILTERED():
Depois que você criar a medida, a Tabela Dinâmica deverá mostrar que [Is ProductName Cross Filtered] é FALSE, pois a expressão não está sendo filtrada. Agora, você deve encontrar algo como:
Is ProductName Cross Filtered
FALSE
Se não aparecer nada na Tabela Dinâmica, arraste a coluna [Is ProductName Cross Filtered] até a caixa Values.
Arraste DateTime[CalendarYear] até a caixa Rótulos de Coluna e arraste SalesTerritory[SalesTerritoryGroup] até a caixa Rótulos de Linha; todos os valores devem aparecer como FALSE. Agora, você deve encontrar algo como:
Is Product Name CrossFiltered
Rótulos de Coluna
Rótulos de Linha
2005
2006
2007
2008
Grand Total
Europa
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
NA
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
Você está verificando o valor FALSE em todas as células porque DateTime[CalendarYear] ou SalesTerritory[SalesTerritoryGroup] não tem efeito de filtragem em Product[ProductName].
Arraste o coluna ProductCategory[ProductCategoryName] até a caixa Segmentações de Dados Horizontais e ProductSubCategory[ProductSubCategoryName] até a caixa Segmentações de Dados Verticais. Todos os valores ainda devem aparecer como FALSE, pois quando você adiciona uma coluna à caixa de segmentações de dados, ainda não selecionou um conjunto de segmentação de dados. Portanto, você deve encontrar algo como:
ProductCategoryName
Acessórios
Bikes
Clothing
Componentes
ProductSubcategoryName
Is Product Name CrossFiltered
Rótulos de Coluna
Bib-Shorts
Rótulos de Linha
2005
2006
2007
2008
Grand Total
Bike-Racks
Europa
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bike-Stands
NA
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
Selecione qualquer item nas segmentações de dados e sua tabela transformará todas as células em TRUE porque você agora está filtrando a coluna Product[ProductName] através das tabelas ProductCategory e ProductSubcategory relacionadas. Seus resultados devem ter esta aparência:
ProductCategoryName
Acessórios
Bikes
Clothing
Componentes
ProductSubcategoryName
Is Product Name CrossFiltered
Rótulos de Coluna
Bib-Shorts
Rótulos de Linha
2005
2006
2007
2008
Grand Total
Bike-Racks
Europa
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bike-Stands
NA
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
Agora você pode substituir as segmentações de dados por Product[ProductName] e Product[ModelName]. Contanto que você não selecione itens em segmentações de dados, a medida retorna FALSE; porém, quando você seleciona um item na segmentação de dados, agora a medida retorna TRUE porque você está filtrando Product[ProductName] sozinho ou está selecionando um Product[ModelName].
Portanto, ISCROSSFILTERED() permitirá determinar se columnName está sendo filtrado no contexto em que sua expressão DAX está sendo avaliada.
Este exemplo usa o modelo de planilha de exemplo DAX_AdventureWorks.