Função ISFILTERED (DAX)
Retorna TRUE quando columnName está sendo filtrado diretamente. Se não houver filtro na coluna ou se a filtragem ocorrer porque uma coluna diferente na mesma tabela ou em uma tabela relacionada estiver sendo filtrada, a função retornará FALSE.
Sintaxe
ISFILTERED(<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 está sendo filtrado diretamente.
Comentários
columnName é considerado filtrado diretamente quando os filtros são aplicados na coluna; uma coluna é considerada com filtros cruzados quando um filtro aplicado a outra coluna na mesma tabela ou em uma tabela relacionada afeta a coluna columnName, filtrando-a também.
A função Função ISCROSSFILTERED (DAX) relacionada retorna TRUE quando columnName ou outra coluna na mesma tabela ou em uma tabela relacionada está sendo filtrada.
Exemplo
O exemplo a seguir cria uma medida e depois apresenta cenários diferentes para explicar o comportamento de ISFILTERED(). Para acompanhar os cenários, baixe a planilha de dados de exemplo DAX (Data Analysis Expressions).
Primeiro, crie a medida [Is ProductName Filtered directly] a seguir na tabela [Product].
=ISFILTERED(Product[ProductName])
Compreendendo ISFILTERED():
Depois que você criar a medida, a tabela dinâmica deve mostrar que [Is ProductName Filtered directly] é FALSE, pois a expressão não está sendo filtrada. Agora, você deve encontrar algo como:
Is ProductName Filtered directly
FALSE
Se não aparecer nada na tabela dinâmica, arraste [Is ProductName Filtered directly] até a caixa Valores.
Arraste ProductCategory [ProductCategoryName] até a caixa Rótulos de Linha; todos os valores devem permanecer FALSE e sua tabela deve ter esta aparência:
Rótulos de Linha
Is ProductName Filtered directly
Acessórios
FALSE
Bikes
FALSE
Roupas
FALSE
Componentes
FALSE
FALSE
Total Geral
FALSE
A tabela contém valores FALSE porque ProductCategory [ProductCategoryName] filtra indiretamente ou realiza a filtragem cruzada de Product[ProductName], mas não é um filtro direto na coluna.
Arraste Product [Status] até a caixa Rótulos de Coluna; todos os valores devem permanecer FALSE e sua tabela deve ter esta aparência:
Is ProductName Filtered directly
Rótulos de Coluna
Rótulos de Linha
Current
Total Geral
Acessórios
FALSE
FALSE
FALSE
Bikes
FALSE
FALSE
FALSE
Roupas
FALSE
FALSE
FALSE
Componentes
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Total Geral
FALSE
FALSE
FALSE
A tabela ainda tem muitos valores FALSE porque Product [Status] não filtra diretamente Product [Name].
A última etapa deste processo é arrastar Product [Name] até a caixa Filtro de Relatório. Neste momento, nada será alterado; porém, quando você selecionar um nome de produto, os valores da tabela deverão ser alterados para TRUE. Dependendo do produto selecionado, sua tabela deve ter esta aparência:
ProductName
Mountain-400-W Silver, 38
Is ProductName Filtered directly
Rótulos de Coluna
Rótulos de Linha
Current
Total Geral
Acessórios
TRUE
TRUE
Bikes
TRUE
TRUE
Roupas
TRUE
TRUE
Componentes
TRUE
TRUE
TRUE
TRUE
Total Geral
TRUE
TRUE
Portanto, ISFILTERED() permitirá determinar se columnName está sendo filtrado diretamente no contexto em que sua expressão está sendo avaliada.
Este exemplo usa o modelo de planilha de exemplo DAX_AdventureWorks