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

  • Alunos

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

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

  • 1
  • Alunos

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.

 

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

  • 0
  • Alunos

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

Faça login para comentar

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



Entrar Agora
×
×
  • Criar Novo...