Ir para conteúdo
  • 0

Estou usando a função DAX "ALL" de forma incorreta?


Marcelo Kniss
Ir para solução Solucionado por Maycon Silva ,

Pergunta

  • Membros

Pessoal, seguinte: Eu preciso criar uma medida que vai servir como denominador de outras medidas...

Essa medida "denominador" tem que ser estática e não pode mudar com os outros filtros.

O problema, é que os usuários usam o filtro lateral do Power BI  para filtrar outras coisas do relatório (eles usam 2 campos dentro do filtro lateral: request_status e id_outcome).

Outra coisa, não posso usar CALCULATE na minha medida "Denominador".

image.png.8bfff7b1ff9df610803778de3bb331ed.png

Então eu fiz o seguinte:

Total aberto = count('tFatos'[Custom CID])

denominador = CALCULATE([Total aberto], ALL(tFatos[REQUEST_STATUS],tFatos[ID_Outcome]))

 

Criei uma medida chamada "denominador" e coloquei a função "ALL" dentro, para ignorar esses 2 filtros que o usuário coloca no filtro lateral.

O Problema que não tá funcionando, porque o resultado deveria estar dando 2.292 e não 1.717 (Quando eu removo os campos do filtro lateral funciona, eu chego no valor. Mas parece que a minha função com o "ALL" não ta funcionando).

 

image.png.ab9645c66aa9a6bf22b69655b4c633ef.png

image.png.9b7af80221f4c44a602ac071ea68ac95.png

 

Então a minha pergunta é... eu to usando a função "ALL" de forma errada? Eu não to entendo nada, pois ela não deveria retirar os filtros?

Eu tentei fazer com a função ALLEXPECTED e REMOVEFILTER e fica dando os mesmo resultados.

 

Alguém me dá uma luz? 

 

image.png

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
  • Membros
  • Solução

Boa noite.

Está correta.

Se vc aplicar filtro no visual ele irá realizar o filtro independente de quaisquer função.

Se usar a função em uma medida ela irá funcionar normalmente.

Exemplo abaixo.

mas se eu filtar 1 produto NO VISUAL MEDIDA ai vai aparecer so a contagem do que eu filtrei.

image.png.23cde45a893ea882b465bbb74a7a1d8a.png

 

Mas se eu fizer um filtro em qualquer outro visual a medida funciona normalmente.

image.png.fec488f5b4d91ecab415e5778bd37bfa.png

Editado por Maycon Silva
Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
3 minutos atrás, Maycon Silva disse:

Boa noite.

Está correta.

Se vc aplicar filtro no visual ele irá realizar o filtro independente de quaisquer função.

Se usar a função em uma medida ela irá funcionar normalmente.

Exemplo abaixo.

mas se eu filtar 1 produto NO VISUAL MEDIDA ai vai aparecer so a contagem do que eu filtrei.

image.png.23cde45a893ea882b465bbb74a7a1d8a.png

 

Mas se eu fizer um filtro em qualquer outro visual a medida funciona normalmente.

image.png.fec488f5b4d91ecab415e5778bd37bfa.png

Muito obrigado, você por acaso sabe onde eu posso encontrar essa informação em alguma documentação?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

Especificamente não, mas pode pesquisar sobre DAX STUDIO, talvez encontre alguma coisa a respeito.

Fiz uma gravação no Perfomance Analyzer e observei que usando a mesma função (agora usei a tabela dcalendario como exemplo, pois o anterior eu fechei), ela implicitamente usa a função TREATAS para fazer o filtro.

A função TREATAS cria um FILTRO entre tabelas não relacionadas.

// DAX Query
DEFINE VAR __DS0FilterTable = 
    TREATAS({DATE(2020, 1, 1)}, 'dCalendario'[Data])

EVALUATE
    SUMMARIZECOLUMNS(__DS0FilterTable, "Medida", IGNORE('_Medidas'[Medida]))
 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
12 horas atrás, Maycon Silva disse:

Especificamente não, mas pode pesquisar sobre DAX STUDIO, talvez encontre alguma coisa a respeito.

Fiz uma gravação no Perfomance Analyzer e observei que usando a mesma função (agora usei a tabela dcalendario como exemplo, pois o anterior eu fechei), ela implicitamente usa a função TREATAS para fazer o filtro.

A função TREATAS cria um FILTRO entre tabelas não relacionadas.

// DAX Query
DEFINE VAR __DS0FilterTable = 
    TREATAS({DATE(2020, 1, 1)}, 'dCalendario'[Data])

EVALUATE
    SUMMARIZECOLUMNS(__DS0FilterTable, "Medida", IGNORE('_Medidas'[Medida]))
 

Mas uma coisa não ficou claro, se o ALL não "funciona" para os filtros de visual, porque se eu der um ALL(tabela) funciona?

image.png.78701894df5bffd968a6af760e4323fe.png

Ou seja, se eu dou um ALL(minha_coluna) não funciona, mas se eu der um ALL(tabela) funciona? Não deveria não funcionar também?

image.png.ccdcae96a1cc8335afd6ef3aa36093bd.png

Editado por Marcelo Kniss
Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
4 horas atrás, Marcelo Kniss disse:

Mas uma coisa não ficou claro, se o ALL não "funciona" para os filtros de visual, porque se eu der um ALL(tabela) funciona?

image.png.78701894df5bffd968a6af760e4323fe.png

Ou seja, se eu dou um ALL(minha_coluna) não funciona, mas se eu der um ALL(tabela) funciona? Não deveria não funcionar também?

image.png.ccdcae96a1cc8335afd6ef3aa36093bd.png

 

 

porque ela está considerando toda a tabela e não apenas 1 coluna.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...