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

  • Alunos

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
  • Alunos
  • 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
  • Alunos
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
  • Alunos

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
  • Alunos
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
  • Alunos
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

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...