Ir para conteúdo
  • 0

Dia anterior Excluindo Feriados


Fernando Garcez
Ir para solução Solucionado por arthurOribeiro ,

Pergunta

  • Alunos

Oi Pessoal, tudo bem?

Estou quebrando a cabeça em uma medida que me retorne o dia anterior excluindo finais de semana e feriados. Tenho essa medida que funciona perfeitamente para finais de semana. Porém, preciso incluir os feriados que ocorrem nessa medida, alguem me da um help? 

D-1 =

// IF(NOT(MAX(dCalendario1[Dia da Semana]) IN {6; 0}); IF(MAX(dCalendario1[Dia da Semana]) = 1; -3;-1))

// Se o Máximo da dCalendário não for 6 (Sábado) e 0 (Domingo), faz um novo Se, considerando que Se o Máximo da dCalendário dia da Semana for 1 (Segunda), retorna para - 3 (Sexta), caso contrário retorna -1.

Var vDiaAnterior = IF(NOT(MAX(dCalendario1[Dia da Semana]) in {6; 0}); IF(MAX(dCalendario1[Dia da Semana]) = 1; -3;-1))

Var vResult = CALCULATE([Saldo Geral];DATEADD(dCalendario1[Data];vDiaAnterior;DAY))

RETURN

vResult

 

 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

@Fernando Garcez,

Esse video deve te auxiliar sobre como tratar os feriados (https://www.youtube.com/watch?v=-nRiPwFD2UI) e feito esse tratamento você pode finalizar sua medida com algo parecido com isso para trazer o dia anterior:

DiaAnterior = CALCULATE(MAX(Dim_Tempo[Data]), FILTER(ALL(Dim_Tempo), Dim_Tempo[Data] < MAX(Dim_Tempo[Data]) && Dim_Tempo[DiaUtil] = 1))

Sendo o DiaUtil uma coluna onde 0 são os feriados /finais de semana e 1 são os dias uteis.

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

  • 0
  • Alunos

Fala Fernando tudo bem?
Tem uma função reservado do DAX que é a WEEKDAY() ela retorna um array de dias 0 - domingo e 7 - sábado
dessa forma em sua tabela dimensão você poderá criar uma coluna a parte conforme exemplo abaixo:
Fim Semana = 
SWITCH(
        WEEKDAY(dCalendario[Data]);
         1;0;
         7;0;
         1
)
O que isso quer dizer: que você tem 7 dias na semana na liguagem de programação um array começa na posição 0, ficando assim: 0 - domingo, 1 - seg.feira, 2 - ter-feira, 3 - qua-feira .... 7 - sábado. A Consulta DAX acima se lê da seguinte forma: Retorne para mim, os dias da semana quando for sábado ou domingo registre como 0, se for os demais registre como 1.

Ai você pode ordernar sua dCalendario e colocar a coluna FimSemana ao lado da DiaSemana, para conferir o resultado. 👍
Feito isso você irá na sua tabelaFato onde deseja calcular a quantidade de dias úteis e faça a consulta da seguinte forma:
Dias Uteis = 
CALCULATE(
        SUM(dCalendario[Fim Semana]);
         DATESBETWEEN(dCalendario[Data]; fTabela[primeira_data];fTabela[segunda_data] - 1)
)

Isso irá criar uma nova tabela com a quantidade de dias úteis. 

Se acharam útil, comenta ai!

Boa sorte!

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...