Ir para conteúdo
  • 0

dCalendario


douglasgodinho
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

20 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Sem a base de dados eu não consigo alterar. Entre no PowerQuery e crie uma coluna personalizada chamada AnoDaSemana. Coloque a seguinte fórmula nela:

=	if Number.RoundDown((Date.DayOfYear([Data])-(Date.DayOfWeek([Data], Day.Monday)+1)+10)/7)=0
      then Date.Year([Data])-1
      else if (Number.RoundDown((Date.DayOfYear([Data])-(Date.DayOfWeek([Data], Day.Monday)+1)+10)/7)=53 and (Date.DayOfWeek(#date(Date.Year([Data]),12,31), Day.Monday)+1)<4)
      then Date.Year([Data]) 
      else Date.Year([Data])

Depois faça a seguinte medida DAX:

Movimentacao = 
    Var vAno = MAX(dCalendario[Ano])
    Var vAnoSemana = convert(LEFT(MAX(dCalendario[AnoDaSemana]),4),INTEGER)
    Var vResult = 
        CALCULATE(
            [Total movimentacao]
        )
Return
    IF(
        vAno = vAnoSemana,
        vResult
    )

Não consigo fazer estas alterações porque não tenho acesso a sua base de dados PostgreSQL.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Insira esta etapa na sua dCalendario

 

Table.AddColumn(InsereSemanaDoAno, "AnoDaSemana", each if Number.RoundDown((Date.DayOfYear([Data])-(Date.DayOfWeek([Data], Day.Monday)+1)+10)/7)=0
      then Date.Year([Data])-1
      else if (Number.RoundDown((Date.DayOfYear([Data])-(Date.DayOfWeek([Data], Day.Monday)+1)+10)/7)=53 and (Date.DayOfWeek(#date(Date.Year([Data]),12,31), Day.Monday)+1)<4)
      then Date.Year([Data]) 
      else Date.Year([Data]), type number)

Ele vai trazer o ano a que se refere a semana do ano. No caso, os dias 01 e 02/2022 fazem parte da semana 52 de 2021. Assim vc pode fazer um DAX verificando se o ano é igual ao ano da semana. Se for, traz  valor.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Não foi esta a fórmula que mandei. Pedi para vc criar uma etapa no PowerQuery na dCalendario com o seguinte código:

Table.AddColumn(InsereSemanaDoAno, "AnoDaSemana", each if Number.RoundDown((Date.DayOfYear([Data])-(Date.DayOfWeek([Data], Day.Monday)+1)+10)/7)=0
      then Date.Year([Data])-1
      else if (Number.RoundDown((Date.DayOfYear([Data])-(Date.DayOfWeek([Data], Day.Monday)+1)+10)/7)=53 and (Date.DayOfWeek(#date(Date.Year([Data]),12,31), Day.Monday)+1)<4)
      then Date.Year([Data]) 
      else Date.Year([Data]), type number)

Esta etapa cria uma coluna chama AnoDaSemana, que corresponde a qual ano a semana calculada se refere. Esta será a coluna que você usará no DAX.

Editado por Bruno Abdalla de Souza
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Mais uma duvida se vc puder ajudar Bruno. Como vc pode ver em novembro tenho semana 48 que começa no  dia 29 so que ela terminar no mes de dezembro dia 05. Pode ver que do dia 29 ao dia 05 da os 7 dias da semana. Eu gostaria de juntar tudo em uma semana so e n aparecer semana 48  em novembro e dezembro. Pq quando faço a comparaçao com a semana anterior ele compara os 2 dias de novembro com os 5 de dezembro.

Semana.png

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