Ir para conteúdo
  • 0

Calendário Gerencial


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

Pergunta

  • Alunos

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
  • Alunos
  • 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
  • Like 1
  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
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
  • Alunos

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

Faça login para comentar

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



Entrar Agora
×
×
  • Criar Novo...