Ir para conteúdo
  • 0

Calendário Gerencial


alexsander.silva
Ir para solução Solucionado por alexsander.silva ,

Pergunta

  • Membros

Bom dia pessoal, preciso de ajuda para criar um calendário gerencial, não estou conseguindo pensar no código para faze-lo corretamente. Basicamente eu preciso definir nesse calendário que o mês gerencial tem que começar sempre na segunda feira e terminar sempre no domingo, fazendo com que alguns meses se estendam a outros meses, por exemplo o mês de junho começar no dia 30/05 (Segunda-Feira) e terminar no dia 03/07 (Domingo). Alguém poderia me ajudar com esse problema? Vou deixar uma planilha em anexo com o calendário gerencial de 2022 como exemplo. No caso eu precisaria criar um Calendário automatizado que defina os meses corretamente de acordo com a base que eu estiver utilizando.

Calendário Gerencial.xlsx

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
  • Membros
  • Solução
Em 08/06/2022 em 17:26, Nelson Kobayashi disse:

Olá @alexsander.silva!

Pelo que vi no seu exemplo de Excel, você só vai conseguir fazer isso usando Linguagem M no Power Query.

Sugiro encerrar este tópico aqui e iniciar outra pergunta no tópico de Linguagem M. 

O pessoal que responde as dúvidas de Lnguagem M são feras e certamente vão te dar uma boa solução.

Abç.

Bom dia,
Consegui criar o calendário em DAX mesmo, foi um pouco difícil encontrar a linha de raciocínio correta para o calculo mas depois de muito tentar deu certo.

MÊS GERENCIAL = 
VAR vMes = 
    MONTH(dCalendario[DATAS])
VAR vAno =
    YEAR(dCalendario[DATAS])
VAR vDataMin =
    CALCULATE(
        MIN(dCalendario[DATAS]),
        dCalendario[ANO] = vAno,
        dCalendario[MÊS NUM.] = vMes
    )
VAR vDataMax = 
    CALCULATE(
        MAX(dCalendario[DATAS]),
        dCalendario[ANO] = vAno,
        dCalendario[MÊS NUM.] = vMes
    )
VAR vDataMinMesGerencial =    
    SWITCH(
        TRUE(),
        WEEKDAY(vDataMin) = 1, vDataMin+1,
        WEEKDAY(vDataMin) = 2, vDataMin,
        WEEKDAY(vDataMin) = 3, vDataMin-1,
        WEEKDAY(vDataMin) = 4, vDataMin-2,
        WEEKDAY(vDataMin) = 5, vDataMin-3,
        WEEKDAY(vDataMin) = 6, vDataMin+3,
        WEEKDAY(vDataMin) = 7, vDataMin+2,
        0
    )    
VAR vDataMaxMesGerencial = 
    SWITCH(
        TRUE(),
        WEEKDAY(vDataMax) = 1, vDataMax,
        WEEKDAY(vDataMax) = 2, vDataMax-1,
        WEEKDAY(vDataMax) = 3, vDataMax-2,
        WEEKDAY(vDataMax) = 4, vDataMax-3,
        WEEKDAY(vDataMax) = 5, vDataMax+3,
        WEEKDAY(vDataMax) = 6, vDataMax+2,
        WEEKDAY(vDataMax) = 7, vDataMax+1,
        0
    )
VAR vMesGerencial = 
    IF(
        dCalendario[DATAS] >= vDataMinMesGerencial && dCalendario[DATAS] <= vDataMaxMesGerencial,
        vDataMaxMesGerencial-ROUNDUP((vDataMaxMesGerencial-vDataMinMesGerencial)/2,0),
        SWITCH(
            TRUE(),
            dCalendario[DATAS] > vDataMaxMesGerencial, vDataMaxMesGerencial+4,
            dCalendario[DATAS] < vDataMinMesGerencial, vDataMinMesGerencial-4,      
            "ERRO"
        )    
    )
VAR vNomeMesGerencial =
    FORMAT(vMesGerencial,"mmm")
RETURN
vNomeMesGerencial
  • Gostei 1
  • Obrigado(a) 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
4 horas atrás, Nelson Kobayashi disse:

Olá @alexsander.silva!

Veja então essa solução completassa do Leonardo Karspinski :

https://powerbiexperience.com/pt/blog/tabela-dcalendario-com-ano-fiscal-offset-e-mes-de-fechamento-personalizado/

Espero ter ajudado.

Também não é o que eu preciso. Eu preciso de uma medida que faça exatamente o que mostra o exemplo que eu dei na planilha em anexo.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

Olá @alexsander.silva!

Pelo que vi no seu exemplo de Excel, você só vai conseguir fazer isso usando Linguagem M no Power Query.

Sugiro encerrar este tópico aqui e iniciar outra pergunta no tópico de Linguagem M. 

O pessoal que responde as dúvidas de Lnguagem M são feras e certamente vão te dar uma boa solução.

Abç.

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