Trabalhar com o comportamento do filtro de valor (versão prévia)
As opções de comportamento de filtro de valor no Power BI permitem que você influencie o mecanismo de filtragem automática presente no DAX que ocorre quando várias colunas da mesma tabela são filtradas. Esse comportamento é informalmente chamado de 'auto-existência'.
O que é comportamento do filtro de valor
Quando várias colunas da mesma tabela são filtradas, o DAX entende que provavelmente nem todas as combinações de valores nessas colunas são válidas e, como resultado, exclui automaticamente combinações inválidas. O Mecanismo DAX gerou um filtro de valor agrupado que não apenas retorna combinações válidas, mas também afeta os cálculos medidos. A configuração de comportamento do filtro de valor permite que você altere esse comportamento em seu modelo semântico. Você pode decidir se deseja desativar os filtros de valores agrupados e, em vez disso, ativar os filtros de valores independentes. Ativar filtros de valor independentes definindo a configuração de comportamento do filtro de valor como Independente (consulte mais adiante neste artigo) resulta em vários filtros na mesma tabela sendo mantidos separados, em vez de o mecanismo DAX combinar esses filtros em um.
Noções básicas sobre o comportamento do filtro de valor
Quando você está filtrando várias colunas na mesma tabela, o comportamento do filtro de valor padrão atual usa esses filtros e os combina em um, considerando apenas as combinações existentes. Considere as duas colunas a seguir na mesma tabela:
- Ano, que contém valores como '2023'.
- Month, que contém valores como 'janeiro de 2024'.
Se você filtrar por Ano e Mês, como essas colunas estão na mesma tabela, o comportamento do filtro de valor combinará os filtros em um, mas somente as combinações existentes serão consideradas. A combinação do mês de janeiro de 2024 com o ano de 2023 não existe e não seria incluída no filtro. Há, no entanto, situações em que os resultados são surpreendentes.
Vejamos um exemplo, onde temos um catálogo mostrando a disponibilidade de cores para produtos por ano. O fabricante desses produtos experimentou fazer produtos em várias cores ao longo dos anos:
Temos três produtos que estavam disponíveis em várias cores ao longo dos anos. Observe como não há produtos vermelhos oferecidos em 2024. Isso será importante um pouco mais tarde. Agora, vamos contar o número de produtos adicionando a seguinte medida:
Number of Products = COUNTROWS( 'Catalog' )`
A matriz a seguir mostra o número de produtos disponíveis em várias cores por ano:
Agora, vamos adicionar outra medida para calcular o número total de produtos para todos os anos:
Number of Products All Years = CALCULATE ( [Number of Products], ALL ( 'Catalog'[Year] ) )
Vamos colocar essas medidas lado a lado e filtrar para o ano de 2023 e apenas as cores azul e vermelho (portanto, sem preto). Você pode ver que o número de produtos é 4 e o número de produtos em todos os anos para essas duas cores é 6:
Se mudarmos o ano para 2024, esperamos que a medida 'Número de produtos' retorne 2, pois há apenas dois produtos azuis em 2024 e não há produtos vermelhos naquele ano. Além disso, esperamos que o número de produtos para todos os anos não mude, porque, afinal, deve ser calculado em todos os anos. No entanto, o 'Número de produtos para todos os anos' muda de 6 para 5:
O número de produtos em todos os anos ainda deve ser 6, não 5. O que estamos vendo aqui é o comportamento do filtro de valor em ação: ele está combinando filtros na mesma tabela, removendo combinações que não existiam. Os filtros são Ano = 2024 e Cor = Azul ou Vermelho. Como esses dois filtros estão na mesma tabela, esses filtros são combinados em um filtro que filtra apenas as combinações existentes. Como não há produtos vermelhos em 2024, o filtro aplicado é Ano = 2024 e Cor = Azul. Portanto, o número de produtos para todos os anos agora conta apenas o número de produtos azuis, não os produtos azuis ou vermelhos. Isso retorna 5, como você pode confirmar na tabela.
Influenciando o comportamento do filtro de valor
Você pode controlar se deseja esse comportamento em seu modelo semântico, usando a configuração Comportamento do filtro de valor em seu modelo semântico no painel de propriedades no modo de exibição do modelo:
Três opções estão disponíveis:
- Automático - Esta é a configuração padrão e atualmente ativa o comportamento Coalescido. Quando encerrarmos esta prévia, novos modelos definidos como Automático usarão Independente, será anunciado naquele momento.
- Independente - Isso força os filtros na mesma tabela a serem mantidos separados. Depois de definir a configuração "Comportamento do filtro de valor" como Independente, o número total de produtos para todos os anos retorna 6 conforme o esperado (veja abaixo).
- Coalesced - Isso força o comportamento do filtro de valor a ser habilitado para o modelo semântico e resulta na combinação dos filtros na mesma tabela em um. O número de produtos para todos os anos em nosso exemplo continua a retornar a 5.
A tabela a seguir mostra o efeito dessa configuração em nosso exemplo: | Configuração de comportamento do filtro de valor | Filtros aplicados no exemplo | Resultado de um exemplo de medida | | --- | --- | --- | |Automático|Ano = 2024,
Cor = Azul|5| |Independente|Ano = 2024,
Cor = Azul ou Vermelho|6| |Coalescido|Ano = 2024,
Cor = Azul|5|
Definir o comportamento do filtro de valor como Automático significa que ele é igual a Coalescido por enquanto, mas será alternado para Independente para novos modelos semânticos no futuro. Se você definir o comportamento do filtro Valor como Independente, o número de produtos para todos retornará 6, conforme esperado, já que os filtros são Ano = 2024 e Cor = Azul ou Vermelho e não são mais combinados:
Próximas etapas
Os seguintes artigos podem ser úteis: