Ir para conteúdo
  • 0

Criação de medida DAX para sumarizar um mesmo periodo


Edilson Melo Lobo
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Membros

Pessoal,

Estou precisando criar uma medida DAX para sumarizar sempre o mesmo periodo de tempo para ser exibido em um gráfico de linhas mostrando o total vendas comparável mês a mês. Exemplo, se estamos no dia 26/10 temos 26 dias no mês atual e os meses anteriores completos, mas gostaria de visualizar sempre o valor total referente a quantidade de dias do mês para ter uma análise comparativa do mesmo periodo de tempo. Segue um exemplo simples no Excel do que estou precisando.

Depois eu também gostaria de criar um medida MOM variação mês atual em relação ao mês anterior considerando os mesmos números de dias do mês atual e anterior.

Conto com a ajuda de vocês e agradeço o suporte.

Edilson

Dúvida DAX.xlsx

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

3 respostass a esta questão

Posts Recomendados

  • 0
  • Membros
  • Solução

@Edilson Melo Lobo

 

Vendas até último dia = 
    VAR vUltimoAnoMes = 
        CALCULATE(
            MAX(dCalendario[AnoMesNum]),
            ALL(dCalendario)
        )
    VAR vAnoMesContexto = 
        MAX(dCalendario[AnoMesNum])
    VAr vUltimoDia = 
        CALCULATE(
            MAX(dCalendario[Dia]),
            ALL(dCalendario)
        )
RETURN
    IF(
        vUltimoAnoMes = vAnoMesContexto,
        [Vendas1],
        CALCULATE(
            [Vendas1],
            FILTER(
                ALL(dCalendario),
                dCalendario[AnoMesNum] = vAnoMesContexto && 
                dCalendario[Dia] <= vUltimoDia
            )
        )
    )

 

20221027_SumarizarAteUltimaData.pbix

  • Gostei 3
Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
5 horas atrás, Bruno Abdalla de Souza disse:

@Edilson Melo Lobo

 

Vendas até último dia = 
    VAR vUltimoAnoMes = 
        CALCULATE(
            MAX(dCalendario[AnoMesNum]),
            ALL(dCalendario)
        )
    VAR vAnoMesContexto = 
        MAX(dCalendario[AnoMesNum])
    VAr vUltimoDia = 
        CALCULATE(
            MAX(dCalendario[Dia]),
            ALL(dCalendario)
        )
RETURN
    IF(
        vUltimoAnoMes = vAnoMesContexto,
        [Vendas1],
        CALCULATE(
            [Vendas1],
            FILTER(
                ALL(dCalendario),
                dCalendario[AnoMesNum] = vAnoMesContexto && 
                dCalendario[Dia] <= vUltimoDia
            )
        )
    )

 

20221027_SumarizarAteUltimaData.pbix 37 kB · 1 download

Muito obrigado pela ajuda Bruno.

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

  • 0
  • Membros
Em 27/10/2022 em 15:24, Bruno Abdalla de Souza disse:

@Edilson Melo Lobo

 

Vendas até último dia = 
    VAR vUltimoAnoMes = 
        CALCULATE(
            MAX(dCalendario[AnoMesNum]),
            ALL(dCalendario)
        )
    VAR vAnoMesContexto = 
        MAX(dCalendario[AnoMesNum])
    VAr vUltimoDia = 
        CALCULATE(
            MAX(dCalendario[Dia]),
            ALL(dCalendario)
        )
RETURN
    IF(
        vUltimoAnoMes = vAnoMesContexto,
        [Vendas1],
        CALCULATE(
            [Vendas1],
            FILTER(
                ALL(dCalendario),
                dCalendario[AnoMesNum] = vAnoMesContexto && 
                dCalendario[Dia] <= vUltimoDia
            )
        )
    )

 

20221027_SumarizarAteUltimaData.pbix 37 kB · 1 download

@Bruno Abdalla de Souza muito obrigado pela ajuda, segui exatamente a lógica do seu código somente incluindo a minha medida de vendas da base original, pois a dimensão calendário estava igual. Infelizmente não deu certo e a saida da fórmula foi o total normal considerando o total de dias de cada mês e não a medida comparável. A única diferença da base original com a base simples de exemplo que passei é que na base original tenho mais 2 colunas, sendo 1 para tipo venda (vendedor online ou online) e marketplace (Loja própria ou parceiros), para cada dia da tabela dimensão calendário eu tenho 4 linhas na tabela fato (2 linhas para as vendas  de vendedor online em loja própria e marketplace e 2 para modalidade online (loja própria e marketplace) com suas respectivas vendas na data.  Tentei resolver essa medida de todas as formas utilizando o código igual ao seu e também  fazendo algumas alterações mas o resultado foi sempre o mesmo o total de vendas de todos os dias disponíveis em cada mês. Segue abaixo o código do último ajuste que tentei fazer com o mesmo resultado do codigo anterior que está exatamente igual ao seu, como se estivesse utilizando uma medida normal de vendas que não dá para comparar a mesma quantidade de dias dos meses.

Agradeço qualquer suporte que puderem me dar.

 

Total Vendas comparável = 


    VAR vUltimoAnoMes = 
            CALCULATE(
                MAX(dimCalendario[AnoMesNum]),
                ALL(dimCalendario)
            )
    VAR vAnoMesContexto = 
        MAX(base_dados_share[AnoMes])
    
    VAR vUltimaDataContexto = MAX(base_dados_share[Data])

    VAR vResultado = 
    IF(
        vUltimoAnoMes = vAnoMesContexto, 
        [Total Vendas],
        CALCULATE(
            [Total Vendas],
            FILTER(
                ALL(dimCalendario),
                dimCalendario[AnoMesNum] = vAnoMesContexto &&
                dimCalendario[ID_Data] <= vUltimaDataContexto
            )
        )
    )          
    
    RETURN vResultado

  • Gostei 1
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...