Pq no segundo argumento da função HASONEFILTER foi usado a função MAX? Confesso que fiquei confuso com a utilização dessa função, principalmente pq o valores utilizados são texto.
Pq no segundo argumento da função HASONEFILTER foi usado a função MAX? Confesso que fiquei confuso com a utilização dessa função, principalmente pq o valores utilizados são texto.
As aulas andam confusas e meio esquisitas mesmo (agora que entrou mais na área de programação dentro do BI), tive que pesquisar sobre isso e encontrei um instrutor com vídeo gratuito no YouTube que falou a respeito, se encontrar o link aqui edito o post. Segue o que entendi:
O IF do DAX é meio estranho para quem esta acostumado com outras linguagens, mas aqui basicamente você passa 3 parâmetros:
if(
HASONEFILTER(Tb_Vendedores[Nome]),
MAX(Tb_Vendedores[Nome]),
"Todos os Vendedores"
)
Nesse caso cada linha é um parâmetro então:
1º Linha: Verifica se é True ou False, essa função retorna "true" se tiver um filtro.
2º Linha: Caso true mostra o que tiver aqui, nesse caso vai mostrar o resultado do Max() que vai buscar o "maior valor" dentro da tabela já filtrada... é esquisito pois ele esta buscando o "maior valor" em uma lista de string, é o tipo de coisa que se espera um erro acontecendo mas funciona aqui no Power BI. Ele busca o "maior nome" (?) e como esta filtrado para exibir apenas o nome de um dos vendedores, acaba retornando isso.
3º Linha: Caso retorne False ali na primeira linha (que é quando a função detecta que não foi utilizado filtros) ele mostra o valor que estiver aqui.
Por isso que essa medida se comporta dessa maneira, perceba que o Max() não esta dentro do HasOneFilter().