Usar SELECTEDVALUE em vez de VALUES
Como modelador de dados, às vezes você pode precisar escrever uma expressão DAX que testa se uma coluna é filtrada por um valor específico.
Em versões anteriores de DAX, esse requisito era alcançado com segurança usando um padrão envolvendo três funções DAX; IF, HASONEVALUE e VALUES. A definição de medida a seguir é um exemplo. Ela calcula o valor do imposto sobre vendas, mas apenas para vendas feitas a clientes australianos.
Australian Sales Tax =
IF(
HASONEVALUE(Customer[Country-Region]),
IF(
VALUES(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
)
No exemplo, a função HASONEVALUE retorna TRUE somente quando apenas um valor da coluna País–Região está visível no contexto de filtro atual. Quando for TRUE, a função VALUES será comparada com o texto literal "Austrália". Quando a função VALUES retorna TRUE, a medida Vendas será multiplicada por 0,10 (representando 10%). Se a função HASONEVALUE retornar FALSE — porque mais de um valor filtra a coluna – a primeira função IF retornará BLANK.
O uso do HASONEVALUE é uma técnica defensiva. Isso é necessário porque é possível que vários valores filtrem a coluna País-Região. Nesse caso, a função VALUES retorna uma tabela com várias linhas. A comparação de uma tabela de várias linhas com um valor escalar resulta em um erro.
Recomendação
Recomendamos que você use a função SELECTEDVALUE. Ele alcança o mesmo resultado que o padrão descrito neste artigo, mas de forma ainda mais eficiente e elegante.
Usando a função SELECTEDVALUE, a definição da 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 na função SELECTEDVALUE. 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? Experimente perguntar à Comunidade do Power BI
- Sugestões? Contribuir com ideias para aprimorar o Power BI