Ir para conteúdo
  • 0

Tabela Calendário - Criar Semana do Mês em Ordem Cronológica


Caroline Do Nascimento Ramos
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Alunos

Oi pessoal, tudo bem?

Me ajudem por gentileza com esse problema, estou matutando há semanas com tentativa e erro e buscas na internet e sem sucesso =/

Na coluna 'SemanaMes', preciso ajustar a regra para considerar a ordem cronológica de cada mês.

Exemplo do resultado esperado: maio/2024

Semana 1 = 01 a 05/05/24

Semana 2 = 06 a 12/05/24

Semana 3 = 13 a 19/05/24

Semana 4 = 20 a 26/05/24

Semana 5 = 27 a 31/05/24

Atualmente, a regra dessa coluna está considerando o início de cada semana do mês toda segunda-feira e quando o mês inicia no meio da semana por exemplo, ele considera como a última semana, imagem de exemplo abaixo:

image.png.a9cd8dbc5d9229f0e584f97e670ef9b1.png

Para o meu problema não funciona, pois após ajustar essa coluna 'SemanaMes' para a ordem cronológica, vou criar uma medida para obter a média de vendas de cada semana, dentro do mês. E com a regra atual, fica incorreto.

Obrigada!!!

Abs

semana_mes_dax_.pbix

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Veja se é isso.

dCalendario = 
VAR DataInicial = DATE ( 2023, 10, 30 )
VAR DataFinal = DATE ( 2024, 12, 31 )
VAR Datas = 
    SELECTCOLUMNS (
        CALENDAR ( DataInicial, DataFinal ),
        "Data",
        [Date]
    )
VAR Calendario = 
    ADDCOLUMNS (
        Datas,
        "Ano", YEAR ( [Data] ),
        "MesNo", MONTH ( [Data] ),
        "Mes", FORMAT ( [Data], "MMMM", "pt-BR" ),
        "DiaDaSemanaNo", WEEKDAY ( [Data], 2 ),
        "DiaDaSemana", FORMAT ( [Data], "dddd", "pt-BR" ),
        "InicioSemana", [Data] - WEEKDAY ( [Data], 2 ) + 1
    )
VAR Semanal = 
ADDCOLUMNS (
    Calendario,
    "AnoSemanal", YEAR ( [InicioSemana] ),
    "MesSemanalNo", MONTH ( [InicioSemana] ),
    "MesSemanal", FORMAT ( [InicioSemana], "MMMM", "pt-BR" ),
    "SemanaMes", 
    VAR DataInicial = EOMONTH ( [Data], -1 ) + 1 //EOMONTH ( [InicioSemana], -1 ) + 1  //DATE ( [AnoSemanal], [MesSemanalNo], 1) 
    VAR DataFinal = EOMONTH([Data], 0)
    VAR PrimeirasDatas = CALENDAR ( DataInicial, DataFinal )
    var vNSegundas = 
        COUNTROWS(
            FILTER(
                PrimeirasDatas,
                [Date] <= [Data] && 
                WEEKDAY([Date], 2) = 1
            )
        ) + 1

    RETURN 
        vNSegundas
)
RETURN Semanal 

 

20240610_semana_mes_dax_.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
20 horas atrás, Bruno Abdalla de Souza disse:

Só tome cuidado, porque com essa solução você terá semanas com números de dias menores que 7 e aí a comparação entre semanas pode ser injusta.

 

20 horas atrás, Bruno Abdalla de Souza disse:

Veja se é isso.

dCalendario = 
VAR DataInicial = DATE ( 2023, 10, 30 )
VAR DataFinal = DATE ( 2024, 12, 31 )
VAR Datas = 
    SELECTCOLUMNS (
        CALENDAR ( DataInicial, DataFinal ),
        "Data",
        [Date]
    )
VAR Calendario = 
    ADDCOLUMNS (
        Datas,
        "Ano", YEAR ( [Data] ),
        "MesNo", MONTH ( [Data] ),
        "Mes", FORMAT ( [Data], "MMMM", "pt-BR" ),
        "DiaDaSemanaNo", WEEKDAY ( [Data], 2 ),
        "DiaDaSemana", FORMAT ( [Data], "dddd", "pt-BR" ),
        "InicioSemana", [Data] - WEEKDAY ( [Data], 2 ) + 1
    )
VAR Semanal = 
ADDCOLUMNS (
    Calendario,
    "AnoSemanal", YEAR ( [InicioSemana] ),
    "MesSemanalNo", MONTH ( [InicioSemana] ),
    "MesSemanal", FORMAT ( [InicioSemana], "MMMM", "pt-BR" ),
    "SemanaMes", 
    VAR DataInicial = EOMONTH ( [Data], -1 ) + 1 //EOMONTH ( [InicioSemana], -1 ) + 1  //DATE ( [AnoSemanal], [MesSemanalNo], 1) 
    VAR DataFinal = EOMONTH([Data], 0)
    VAR PrimeirasDatas = CALENDAR ( DataInicial, DataFinal )
    var vNSegundas = 
        COUNTROWS(
            FILTER(
                PrimeirasDatas,
                [Date] <= [Data] && 
                WEEKDAY([Date], 2) = 1
            )
        ) + 1

    RETURN 
        vNSegundas
)
RETURN Semanal 

 

20240610_semana_mes_dax_.pbix 39.29 kB · 0 downloads

Olá Bruno.

Deu super certo, obrigada pela rápida ajuda, me salvou 😃

Abs.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
22 horas atrás, reinaldoc disse:

Não recomendo fazer isso, especialistas não quebram a semana em meses diferentes. Sua tabela calendário está correta.

Oi Reinaldo. Obrigada pela contribuição.

Confesso que não entendi muito bem o seu comentário.

O meu objetivo não é quebrar a semana em meses diferentes e sim obter a semana individualmente e de forma cronológica para cada mês.

O Bruno compartilhou a solução, veja se faz sentido pra você.

Abs.

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