Ir para conteúdo
  • 0

Quantidade de último Status de NFe, agrupado por Mês, consolidado por Trimestre


fernando0877
Ir para solução Solucionado por Rodrigo R1 ,

Pergunta

  • Membros

Caros, entendidos do assunto...

Estou com dificuldade de fazer essa DAX. Ainda não me caiu a ficha de como fazer algumas agregações
Tenho essa Tabela Fato do Status da NFe que vai se alterando. Na prática a NFe é enviada  (cód 10) e pode haver diversos tipos de retorno de atendimento (mudança de status).
Preciso saber a quantidade de NFes que tiveram alterações de Status que não seja status 10.
Ou seja:
- preciso contar NFes Distintas
- somente o 1º Status
- que seja diferente de [codStatus = "10"]
- Contar os distintos desse 1º Status no mês (e sem repetir a contagem da NFe em outro período: mês, trimestre , ano);

Ou seja se mudou de status ela já teve um "retorno de atendimento"

Fácil né? No SQL eu saberia fazer, 

image.thumb.png.40cc98799dcbd8cd89e3eeb00e025910.png

MaxStatus.pbix Modelo.xlsx

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

3 respostass a esta questão

Posts Recomendados

  • 2
  • Membros
  • Solução

Boa noite @fernando0877, tudo bem amigo.

A sua dúvida pode ser resolvida utilizando-se da teoria de conjuntos - muito utilizada para analisar, por exemplo, os clientes novos em determinado período.

Só que no seu caso, são notas fiscais novas com a condição que não tenham o código de status = 10. 

Portanto, a medida para sua solução é:

R1 =

var notasatuais = calculatetable(VALUES(fStatusNFe[nNFe]), fStatusNFe[codStatus] <>10)

var notasantigos =

CALCULATETABLE(

values(fStatusNFe[nNFe]),

FILTER(

all(dCalendario),

dCalendario[dtBase] < min(dCalendario[dtBase])),

fStatusNFe[codStatus] <> 10)

var excecao = EXCEPT(notasatuais, notasantigos)

Return

countrows(excecao)

Veja que eu criei 2 conjuntos - que são 2 tabelas: notas novas e notas antigas, ambas com a condição do código de status ser diferente de 10.

Depois fiz a exceção entre elas, e por fim, o return contando as linhas dessa tabela resultante. 

O que dará o seguinte resultando em uma matriz:

image.png.f3535284ccddf57359874192b6ae53b1.png

 

Para compreender melhor, vou deixar aqui como sugestão uma aula do curso para você assistir para assimilar os conceitos que eu apliquei na sua solução:

Ex. 4: Listando clientes novos em relação a todos os meses (primeira compra) - [TC] 5A. Exercícios e Desafios com DAX (powerbiexperience.com)

Essa aula é a 4 de 5 que tratam do mesmo assunto dentro desse módulo.

Espero que tenha ajudado, amigo

Sucesso aí.

  • Gostei 1
  • Obrigado(a) 1
Link para o comentário
Compartilhar em outros sites

  • 1
  • Membros

Que bom que tenha consigo ajudar, @fernando0877

Realmente eu sou muito sortudo em estar longe mesmo...kakaka...brincadeiras à parte....rsrsrs....

...mas ainda tem um universo de possibilidades que você irá vivenciar no Curso do Leo. Por isso ele é o mais completo que existe - tudo que precisar vai encontrar no curso, na comunidade, no fórum...

Sobre as funções CALCULATE e CALCULATETABLE, elas permitem a transição de contexto com uso de filtros, só que a primeira é usada para medidas e a segunda em tabelas.

Já as funções EXCEPT e INTERCEPT são quase como JOINS. Também retornam tabelas, sendo que uma trás a exceção entre os conjuntos de dados analisados e a outra trás a intersecção entre eles. E na EXCEPT a ordem das tabelas é levada em consideração, na hora de escrever a medida - exceção da primeira tabela em relação à segunda. Na INTERCEPT não faz diferença a ordem das tabelas, pois ela trás o que é igual em ambas.

Sobre o curso, uma sugestão é que não pule etapas, amigo. Siga as trilhas. Mesmo que vc tenha assistido as aulas que te recomendei, volte para o módulo que está e siga sempre esse roteiro.

Esse é o maior segredo para fixar o aprendizado. 

Mais uma vez, sucesso amigo.

 

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

  • 0
  • Membros

Sorte sua que não estás por perto, Se não eu te dava um beijo!!! Grato!!!💯

Não olhei ainda este módulo que indicaste. Gostei de saber que tem mais novidades pela frente.
Interessante que a segunda CALCULATETABLE só gera uma tabela dentro do contexto de datas. Coloquei ela pra gerar umaTabela calculada, pra tentar entender. E retornou vazio.
Ainda não entendi perfeitamente a lógica. Vou olhar a aula

Eu não sabia da existência da função EXCEPT. 

Ou seja, realmente eu precisava dessa ajuda dos universitários.

Coloco em anexo o pbix resolvido, dei umas sabotadas no exemplo pra verificar se estava funcionando perfeitamente, e está
Segue com exemplo do Primeiro e do Último registro, caso alguém precise.

MaxStatus.pbix

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