Ir para conteúdo
  • 0

Calculo de Lead Time + Dias uteis


Michael Neres
Ir para solução Solucionado por Rodrigo R1 ,

Pergunta

  • Alunos

 Boa noite

 

 Colegas,

 Ao extrair uma base do sistema a qual utilizo, o mesmo já calcula o lead time, porém tenho a seguinte regra que devo aplicar via DAX:

 Caso a nota fiscal seja emitida após as 18:00hrs, é necessário acrescentar +1 dia util.  Como faço para acrescentar +1 dia útil ?

 inicialmente estou aplicando a formula a qual pode cair nos finais de semana incorretamente.

 

Validação NF = IF(HOUR('Base de Entrega 13 09'[Emissão NF]>=18;'Base de Entrega 13 09'[REF_PRAZO_DE_ENTREGA]+1;'Base de Entrega 13 09'[REF_PRAZO_DE_ENTREGA])

 

Já Criei um dCalendario, com dia útil porém não sei como aplicar essa consideração.

image.png.57096fe011b34232e89321273f7cbd92.png

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução

Amigo, boa noite.

O primeiro ajuste é que no seu modelo precisa ter uma coluna na dcalendário com a informação de dia útil ou não útil, conforme tela abaixo:

473179511_TabelaDiaUtil.thumb.png.83e7025b5472d03d71ce46c7dfdcb095.png

Depois disso, segue a medida que irá te retornar os dias conforme a sua necessidade: se dia útil, retorna o própria dia, caso contrário retorna o primeiro dia útil posterior:

1432795611_MedidaDiaUtilPosterior.png.8396eac8d8903e345b3203755a257f29.png

Rodrigo R1 =

var diaatual = SELECTEDVALUE('DCalendário2'[Data])

var situacao = SELECTEDVALUE('DCalendário2'[Util/Não Util])

var diautilposterior = CALCULATE(

Min('DCalendário2'[Data]),

FILTER(all('DCalendário2'[Data]),

'DCalendário2'[Data] > diaatual),

'DCalendário2'[Util/Não Util] = "Util")

return

IF(situacao = "Util", diaatual, diautilposterior)

O raciocínio lógico para chegar a sua solução é esse.

Agora é adaptar ao seu modelo.

Espero que tenha ajudado.

Sucesso aí, amigo.

Link para o comentário
Compartilhar em outros sites

  • 1
  • Alunos

Amigo, como eu disse, precisa ajustar o raciocínio lógico da minha solução ao seu modelo. Portanto, pra eu conseguir fazer o que vc precisa, será necessário vc disponibilizar o arquivo PBIX.

Lembrando que a minha medida foi feita com base na coluna de datas da DCalendario. Pelo que estou entendendo, vc precisa apenas ajustar para que a análise seja feita com base na sua coluna de Validação Datas. Com base nela, vc vai calcular o dia útil ou não, e tbm calcular o dia útil posterior, e depois disso irá fazer o check do IF. Entendo que vc precisa trocar na medida que eu forneci, onde for dcalendario(data), vc coloca a coluna validação data. Assim vc ajusta o contexto de avaliação ao seu modelo. Caso não tenha conseguido, reforço a necessidade de disponibilizar o PBIX para que eu consiga fazer. Sucesso aí. 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

 Bom dia

 Olá Rodrigo, desde já agradeço a explicação !

 Já corrigi a dCalendario e tenho a referencia do que é dia util, mas como posso adaptar essa formula abaixo:

Validação NF = IF(HOUR('Base de Entrega 13 09'[Emissão NF]>=18;'Base de Entrega 13 09'[REF_PRAZO_DE_ENTREGA]+1;'Base de Entrega 13 09'[REF_PRAZO_DE_ENTREGA])

 Na coluna Validação Data estou aplicando a formula acima, a qual puxo o prazo de entrega que já em formato data e faço a verificação da hora para acrescentar +1 dia e na coluna Data Dia Uteis estou trazendo a regra a qual você disponibilizou. Como eu poderia aplicar uma formula para caso a Validação Data não estiver na coluna Data dia Uteis considerar o próximo dia mencionado na coluna ? 

image.png.e3c9c08ea252993982399710b4a91fe8.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

 Rodrigo, agradeço novamente a disponibilidade, segue o pbix em anexo.

 

 O motivo das duvidas com relação ao acréscimo do dia, é que vou necessitar incluir essa regra abaixo a qual utilizo no excel, porém preciso primeiro resolver essa questão grifada que estamos discutindo:

 

=SE(E([@[TIPO_CLIENTE]]="Agendado";[@[DATA_DA_AGENDA]]<>"";[@[DT_REAGENDA]]<>"";[@[RESP_REAGENDA]]="Cliente");TRUNCAR([@[DT_REAGENDA]]);
SE(E([@[TIPO_CLIENTE]]="Agendado";[@[DATA_DA_AGENDA]]<>"");TRUNCAR([@[DATA_DA_AGENDA]]);
SE(E([@[TIPO_CLIENTE]]="Não Agendado";[@[REF_PRAZO_DE_ENTREGA]]<>"");DIATRABALHO.INTL(TRUNCAR([@[REF_PRAZO_DE_ENTREGA]]);SE(HORA([@[DATA_SHIPMENT]])>=18;1;0);1;db_apoio_feriado[Data]);
SE([@[REF_PRAZO_DE_ENTREGA]]<>"";TRUNCAR([@[REF_PRAZO_DE_ENTREGA]]);"--"))))
 

 

Material de Estudo.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...