Ir para conteúdo
  • 0

DAX - DISTINCTCOUNT para duas colunas


Mateus_Silva
Ir para solução Solucionado por Frank Figueredo ,

Pergunta

  • Alunos

Olá, bom dia!

Estou tentando realizar uma medida em dax que pega os valores de duas colunas("Requisição" e "Itens da Requisição") e contar distinto, mas não consigo referenciar duas colunas no distinctcount, pois queria pegar o valor da quantidade de itens de cada requisição.

Obs: Criando pelo o power query concatenando as duas colunas e mandando contar distinto sei que é possível queria saber se existe a possibilidade em DAX sem modificação na modelagem.

O modelo que realizamos o Itens da Requisição se repete, pois temos dentro de um item um rateio de despesas que no caso repete os itens,  segue imagem abaixo: 

image.png.d965c1a13cc62739607aca7c585053d9.png

 

E o número que queria gerar seria contar 3 itens dessa requisição:

image.png.6e652fa5e9524692658841e1ff16cbc7.png

 

Att,

Mateus Silva

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

@Mateus_Silva penso que fazer a concatenação via Power Query  e depois somente fazendo a contagem distinta seja a melhor maneira, porém há como fazer via DAX também, fiz de duas Formas, uma com variável e outra fazendo direto:

1 - Variáveis:

Contagem Unindo Pelo Dax = 
VAR vTabelaConcatenada = 
    ADDCOLUMNS(
        Requisicao,"Requisicao_Item",
        Requisicao[REQUISICAO] & Requisicao[ITEMRC]
    )

VAR vDistintos = 
SUMMARIZE(vTabelaConcatenada,[Requisicao_Item])

RETURN 
COUNTROWS(vDistintos)
        

2 - Direto:

Contagem Unindo Pelo Dax v02 = 
COUNTROWS(
SUMMARIZE(
    ADDCOLUMNS(
        Requisicao,"Requisicao_Item",
        Requisicao[REQUISICAO] & Requisicao[ITEMRC]
    ),[Requisicao_Item]
    )
)
        

 

Em Anexo PBIX.

 

Mateus Silva - DAX - DISTINCTCOUNT para duas colunas.pbix

  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 1
  • Alunos

@Mateus_Silva Difícil dizer sobre performance, pois entendo como sendo coisas distintas, a performance do ETL e das Medidas:

Via Power Query: Você aumenta o volume de dados, por ter mais uma coluna, porém a medida é mais rápida.

Via Dax: Você não aumenta o volume de dados, mas a medida não é tão mais rápida, se comparado a anterior.

Aí cabe analisar, via Dax Studio e o Analyzer por exemplo para ver quanto cada uma é mais rápido que outra e pesar os prós e contras, com base no que preconiza a empresa.

Eu por exemplo, parto da premissa, de que quanto mais perto da origem dos dados melhor.

Mas cada caso é um caso.

Sem falar que nem sempre tudo se resume a Performance, pois se o modelo está bem estruturado, com tratamento adequando a expansão para novas medidas e analises fica mais fácil, permitindo maiores cruzamentos dos dados.

Já quando faz via medida, dependendo do cenário terá que voltar, ajustar e as vezes "dá a volta no mundo" pra chegar no resultado, quando poderia fazer com uma simples contagem.

  • Like 1
  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
27 minutos atrás, Barony disse:

Não, la power query com a função mesclas colunas vc vai unir estas duas colunas e trazer pronto.


image.png.f93b91ab750180582d006e98d2e7b17f.png

@Barony,  esse método eu realizei o  ponto queria saber se era possível gerar como Medida DAX sem realizar na modelagem do dado no Power Query ou como Coluna Calculada no DAX.

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 hora atrás, Rafa Lemos disse:

@Mateus_Silva boa tarde!

consegue enviar exemplos dos códigos que tem para fazermos no Power BI?

Provavelmente você terá que fazer uma tabela virtual, onde concatenará as duas colunas e na sequência fazer um distinct dessa coluna.

Olá @Rafa Lemos, boa tarde!

Posso sim, segue o modelo em anexo.

Att,

 

Modelo Requisicao - Contar Distinto.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
16 horas atrás, Frank Figueredo disse:

@Mateus_Silva penso que fazer a concatenação via Power Query  e depois somente fazendo a contagem distinta seja a melhor maneira, porém há como fazer via DAX também, fiz de duas Formas, uma com variável e outra fazendo direto:

1 - Variáveis:

Contagem Unindo Pelo Dax = 
VAR vTabelaConcatenada = 
    ADDCOLUMNS(
        Requisicao,"Requisicao_Item",
        Requisicao[REQUISICAO] & Requisicao[ITEMRC]
    )

VAR vDistintos = 
SUMMARIZE(vTabelaConcatenada,[Requisicao_Item])

RETURN 
COUNTROWS(vDistintos)
        

2 - Direto:

Contagem Unindo Pelo Dax v02 = 
COUNTROWS(
SUMMARIZE(
    ADDCOLUMNS(
        Requisicao,"Requisicao_Item",
        Requisicao[REQUISICAO] & Requisicao[ITEMRC]
    ),[Requisicao_Item]
    )
)
        

 

Em Anexo PBIX.

 

Mateus Silva - DAX - DISTINCTCOUNT para duas colunas.pbix 820 kB · 0 downloads

@Frank Figueredo, muito obrigado deu certo.

Sobre o uso do power query é por que aqui na empresa em que trabalho a gente evitar de mexer na modelagem e se voltar mais para realizar por medidas para não aumentar mais o volume de dados.

Nesse caso fazendo, dessa forma, ou via power query a performance se daria a mesma?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
19 horas atrás, Frank Figueredo disse:

@Mateus_Silva Difícil dizer sobre performance, pois entendo como sendo coisas distintas, a performance do ETL e das Medidas:

Via Power Query: Você aumenta o volume de dados, por ter mais uma coluna, porém a medida é mais rápida.

Via Dax: Você não aumenta o volume de dados, mas a medida não é tão mais rápida, se comparado a anterior.

Aí cabe analisar, via Dax Studio e o Analyzer por exemplo para ver quanto cada uma é mais rápido que outra e pesar os prós e contras, com base no que preconiza a empresa.

Eu por exemplo, parto da premissa, de que quanto mais perto da origem dos dados melhor.

Mas cada caso é um caso.

Sem falar que nem sempre tudo se resume a Performance, pois se o modelo está bem estruturado, com tratamento adequando a expansão para novas medidas e analises fica mais fácil, permitindo maiores cruzamentos dos dados.

Já quando faz via medida, dependendo do cenário terá que voltar, ajustar e as vezes "dá a volta no mundo" pra chegar no resultado, quando poderia fazer com uma simples contagem.

@Frank Figueredo, bom dia!

Muito obrigado pelas as dicas, garanto que estarei levando em conta de agora em diante esses aspectos.

Att,

Mateus Silva

  • Like 1
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...