Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Como um modelador de dados, às vezes, talvez seja necessário escrever uma DAX expressão que teste se uma coluna é filtrada por um valor específico.
Em versões anteriores, DAX, esse requisito foi alcançado com segurança usando um padrão envolvendo três DAX funções: IF, HASONEVALUE e VALUES. A definição de medida a seguir apresenta um exemplo. Calcula o valor do imposto sobre vendas, mas apenas para as vendas feitas aos clientes australianos.
Australian Sales Tax =
IF(
HASONEVALUE(Customer[Country-Region]),
IF(
VALUES(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
)
No exemplo, a HASONEVALUE função retorna TRUE somente quando um único valor da coluna País-Região está visível no contexto de filtro atual. Quando é TRUE, a VALUES função é comparada com o texto literal "Austrália". Quando a VALUES função retorna TRUE, a medida Vendas é multiplicada por 0,10 (representando 10%). Se a HASONEVALUE função retornar FALSE— porque mais de um valor filtra a coluna — a primeira IF função retornará BLANK.
O uso da HASONEVALUE técnica é defensiva. É necessário porque é possível que vários valores filtrem a coluna País-Região . Nesse caso, a VALUES função retorna uma tabela de várias linhas. Comparar uma tabela de várias linhas com um valor escalar resulta em um erro.
Recomendação
É recomendável que você use a SELECTEDVALUE função. Ele obtém o mesmo resultado que o padrão descrito neste artigo, ainda mais eficiente e elegantemente.
Usando a SELECTEDVALUE função, a definição de medida de exemplo agora é reescrita.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
Dica
É possível passar um valor de resultado alternativo para a SELECTEDVALUE função. O valor de resultado alternativo é retornado quando nenhum filtro ou vários filtros são aplicados à coluna.
Conteúdo relacionado
- Roteiro de aprendizagem: Usar o DAX no Power BI Desktop
- Perguntas? Tente perguntar na Comunidade do Power BI
- Sugestões? Contribua com ideias para melhorar o Power BI