Ir para conteúdo
  • 0

Contagem DAX


Renata Gomes

Pergunta

  • Alunos

Pessoal

Bom dia,

 

Tenho uma medida que calcula o total de pedidos: 

Qtd AC =
DISTINCTCOUNT(fAvisos[Número do AC])

Porém desses total de pedidos preciso desconsiderar alguns tipos de série de NF que esta marcado de amarelo.

Estou com dificuldade de fazer essa medida alguém pode me ajudar?

 

image.png.ed6516e3d4e9b8173a12ef0920405618.png

 

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

João, deu certo@

Fiz sem o IN not: 

Qtd nao passível recuperacao =
CALCULATE(
   DISTINCTCOUNT(fAvisos[Número do AC]),
   fAvisos[Série NF] IN {"LV","NL","NFSE","NFS-E","S","TP","A","NFSE1","UNICA"},
   fAvisos[Forma de Recuperação do ICMS] in {"Não Recupera","Cliente Isento de ICMS"}
)
 
 
POrém agora preciso fazer ao contrário pegar tudo que não é as séria {"LV","NL","NFSE","NFS-E","S","TP","A","NFSE1","UNICA"} e com in not nao funciona de jeito nenhum, teria outra maneira, pq ao contrário são muitas sérias.
 
image.png.c7c7b2e35084039156c08c9bdccbaf68.png
 
 
 
 
 
 
 
 
 
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
18 minutos atrás, Renata Gomes disse:

João, deu certo@

Fiz sem o IN not: 

Qtd nao passível recuperacao =
CALCULATE(
   DISTINCTCOUNT(fAvisos[Número do AC]),
   fAvisos[Série NF] IN {"LV","NL","NFSE","NFS-E","S","TP","A","NFSE1","UNICA"},
   fAvisos[Forma de Recuperação do ICMS] in {"Não Recupera","Cliente Isento de ICMS"}
)
 
 
POrém agora preciso fazer ao contrário pegar tudo que não é as séria {"LV","NL","NFSE","NFS-E","S","TP","A","NFSE1","UNICA"} e com in not nao funciona de jeito nenhum, teria outra maneira, pq ao contrário são muitas sérias.
 
image.png.c7c7b2e35084039156c08c9bdccbaf68.png
 
 
 
 
 
 
 
 
 

Olá @Renata Gomes, tente colocar o operador diferente (<>)

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Boa noite ,o primeiro ponto que queria entender um pouco melhor é sua modelagem de dados , pelo fato de ter dois tipos de dados para o mesma coluna , o que normalmente não ideal ,além de dificultar na hora de usar a linguagem DAX , pois muita das vezes quando o cálculo(medida) fica complexo de mais  pode ser sinal de modelagem(e ETL como um todo)  de dados incorreta .Mas ,de qualquer forma , em questão de solução DAX , eu fiz essa formula , vou disponibilizar abaixo o teste que fiz no Excel com base no seu problema  , no caso utilizei a função summarize para criar uma tabela, acrescentada a uma coluna de verificação, conferindo se o valor é inteiro ou não ( com a função seerro) , convertendo os dados para inteiro(convert) ou retornando blank() , caso fosse um texto .
Posteriormente a isso , fiz uma nova tabela filtrando todos valores diferentes de blank() , depois usei o coutrows dessa tabela filtrada.
Basicamente , tentei pensar na lógica e fui tentando encaixar , com objetivo de fazer de maneira dinamica  , que na prática seria o adequado , se por exemplo você mudar o valor para um NF ou acrescentar um tipo de NF diferente , vai mudar dinamicamenteTESTE_CONT_NF_DAX.pbix
TESTE_CONT_SERIE_NF.xlsxTESTE_CONT_SERIE_NF.xlsxTESTE_CONT_SERIE_NF.xlsxTESTE_CONT_SERIE_NF.xlsx

TESTE_CONT_NF_DAX.pbix

Editado por Felipe Antunes Alves
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
17 horas atrás, Renata Gomes disse:

João, deu certo@

Fiz sem o IN not: 

Qtd nao passível recuperacao =
CALCULATE(
   DISTINCTCOUNT(fAvisos[Número do AC]),
   fAvisos[Série NF] IN {"LV","NL","NFSE","NFS-E","S","TP","A","NFSE1","UNICA"},
   fAvisos[Forma de Recuperação do ICMS] in {"Não Recupera","Cliente Isento de ICMS"}
)
 
 
POrém agora preciso fazer ao contrário pegar tudo que não é as séria {"LV","NL","NFSE","NFS-E","S","TP","A","NFSE1","UNICA"} e com in not nao funciona de jeito nenhum, teria outra maneira, pq ao contrário são muitas sérias.
 
image.png.c7c7b2e35084039156c08c9bdccbaf68.png
 
 
 
 
 
 
 
 
 

Renata, faça assim: NOT(fAvisos[Forma de Recuperação do ICMS] in {"Não Recupera","Cliente Isento de ICMS"})

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

  • 0
  • Alunos

@Edson Igari não deu certo - fiz a formula dessa forma e deu certo 

Qtd AC Factível de Recuperacao =
CALCULATE(
    DISTINCTCOUNT(
        fAvisos[Número do AC]),
        fAvisos[Série NF] IN {"300","217","226","200","216","284","294","293","464","463","248","296","238","289","189","206","249","462","268","221","250","267","286","269","469","287","285","467","278","222","465","213","212","601","280","474","71","66","460","466","65","80","61","72","473","485","477","77","74","102","63","60","6","83","64","297","62","600","890","495","472","471","479","476","480","483","490","475","470","255","84","484","468","67","86","79","70","69","85","491","489","461","447","68","478","78","486","193","73","75","482","481","81","82","488","88","487","87","48","51","451","57","452","457","50","93","56","456","95","493"},
        fAvisos[Forma de Recuperação do ICMS] IN {"Não Recupera"
 
onde o resultado seria 306
 
 
tentei fazer ao inverso 
 
Qtd AC Factível de recuperação2 =
CALCULATE(
    DISTINCTCOUNT(fAvisos[Número do AC]),
    NOT(fAvisos[Série do AC] in {"LV","NL","NFSE","NFS-E","S","TP","A","NFSE1","UNICA"}),
    (fAvisos[Forma de Recuperação do ICMS] in {"Não Recupera"})
)

o resultado nao esta dando deu 1018 e seria 306


 
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
15 minutos atrás, Renata Gomes disse:

@Edson Igari não deu certo - fiz a formula dessa forma e deu certo 

Qtd AC Factível de Recuperacao =
CALCULATE(
    DISTINCTCOUNT(
        fAvisos[Número do AC]),
        fAvisos[Série NF] IN {"300","217","226","200","216","284","294","293","464","463","248","296","238","289","189","206","249","462","268","221","250","267","286","269","469","287","285","467","278","222","465","213","212","601","280","474","71","66","460","466","65","80","61","72","473","485","477","77","74","102","63","60","6","83","64","297","62","600","890","495","472","471","479","476","480","483","490","475","470","255","84","484","468","67","86","79","70","69","85","491","489","461","447","68","478","78","486","193","73","75","482","481","81","82","488","88","487","87","48","51","451","57","452","457","50","93","56","456","95","493"},
        fAvisos[Forma de Recuperação do ICMS] IN {"Não Recupera"
 
onde o resultado seria 306
 
 
tentei fazer ao inverso 
 
Qtd AC Factível de recuperação2 =
CALCULATE(
    DISTINCTCOUNT(fAvisos[Número do AC]),
    NOT(fAvisos[Série do AC] in {"LV","NL","NFSE","NFS-E","S","TP","A","NFSE1","UNICA"}),
    (fAvisos[Forma de Recuperação do ICMS] in {"Não Recupera"})
)

o resultado nao esta dando deu 1018 e seria 306


 

Eu acho que tem erro de lógica ai. Não consegue compartilhar o pbix?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Na verdade e uma medida até simples, consegui fazer dessa maneira abaixo porém queria fazer ao  contrário.

Nesta coluna de favisos que tem as séries de nota fiscal queria colocar as séries que não é NL,NS,FT e chegaria no mesmo resultado na lógica, ou seja estaria considerando as seria abaixo e excluindo as NL,NS,FT para não precisar colocar esse tanto de série manual igual coloquei abaixo 

 

Qtd AC Factível de Recuperacao =
CALCULATE(
    DISTINCTCOUNT(
        fAvisos[Número do AC]),
        fAvisos[Série NF] IN {"300","217","226","200","216","284","294","293","464","463","248","296","238","289","189","206","249","462","268","221","250","267","286","269","469","287","285","467","278","222","465","213","212","601","280","474","71","66","460","466","65","80","61","72","473","485","477","77","74","102","63","60","6","83","64","297","62","600","890","495","472","471","479","476","480","483","490","475","470","255","84","484","468","67","86","79","70","69","85","491","489","461","447","68","478","78","486","193","73","75","482","481","81","82","488","88","487","87","48","51","451","57","452","457","50","93","56","456","95","493"},
        fAvisos[Forma de Recuperação do ICMS] IN {"Não Recupera"
 
onde o resultado seria 306

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
52 minutos atrás, Renata Gomes disse:

Na verdade e uma medida até simples, consegui fazer dessa maneira abaixo porém queria fazer ao  contrário.

Nesta coluna de favisos que tem as séries de nota fiscal queria colocar as séries que não é NL,NS,FT e chegaria no mesmo resultado na lógica, ou seja estaria considerando as seria abaixo e excluindo as NL,NS,FT para não precisar colocar esse tanto de série manual igual coloquei abaixo 

 

Qtd AC Factível de Recuperacao =
CALCULATE(
    DISTINCTCOUNT(
        fAvisos[Número do AC]),
        fAvisos[Série NF] IN {"300","217","226","200","216","284","294","293","464","463","248","296","238","289","189","206","249","462","268","221","250","267","286","269","469","287","285","467","278","222","465","213","212","601","280","474","71","66","460","466","65","80","61","72","473","485","477","77","74","102","63","60","6","83","64","297","62","600","890","495","472","471","479","476","480","483","490","475","470","255","84","484","468","67","86","79","70","69","85","491","489","461","447","68","478","78","486","193","73","75","482","481","81","82","488","88","487","87","48","51","451","57","452","457","50","93","56","456","95","493"},
        fAvisos[Forma de Recuperação do ICMS] IN {"Não Recupera"
 
onde o resultado seria 306

 

 

O not in deveria funcionar. O que você pode fazer também é trocar o distinctcount por um values e utilizar o except. Mais ou menos assim:

Qtd Aviso não passível =

VAR vTabTudo = 

VALUES(fAvisos[Número do AC])

VAR vTabPassivel = 
CALCULATE (
VALUES (fAvisos[Número do AC]),
fAvisos[Série NF] NOT IN {"LV", "NL", "NESE", "NFS-E", "S", "TP", "A", "NFSE1", "UNICA"}

VAR vTabNaoPassivel =
EXCEPT(vTabTudo,vTabPassivel)

RETURN

COUNTROWS(vTabNaoPassivel)

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...