Ir para conteúdo
  • 0

Média Ponderada (ultimos 3 meses)


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

Pergunta

  • Alunos

Olá Pessoal, Boa noite!
Como que eu consigo calcular por exemplo a Média Ponderada nessa caso dos ultimos 3 meses? No caso seria Seria Dez, Nov e Out de 21. Pois estou avaliando o resultado de Janeiro. 

Tenho uma tabela de faturamento por loja e a data...conforme imagem abaixo.

Assisti alguns vídeos de Média Ponderada..mas é sempre com exemplos que tem uma coluna de "Quantidade" e "Custo Unitário".

Aqui no meu caso eu tenho até a Qtde de Tickets por Loja, que está em outra tabela só com informações de Tickets..Não sei se seria o caso de usar isso no cálculo Dax..

Obrigado!

image.png.c89c17add7543d57b7650f89176d7365.png

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Deve ter jeito mais fácil, mas parece que funcionou:

Ticket Medio Ponderado L3M = 
    VAR vUltData = MAX(dCalendario[Data])
    VAR vUltData3M = EDATE(vUltData,-1)
    VAR vPrimData3M = EDATE(vUltData3M,-3)+1
    VAR vTabelaL3M = 
        DISTINCT(
            SELECTCOLUMNS(
                FILTER(
                    ALL(dCalendario),
                    dCalendario[Data] >= vPrimData3M && 
                    dCalendario[Data] <= vUltData3M
                ),
                "MesAno",
                [Mês/Ano]
            )
        )
    VAR vPonderacaoL3M = 
        SUMX(
            vTabelaL3M,
            VAR vMesAno = [MesAno]
            RETURN
            CALCULATE(
                [Total Fat] * [Ticket Medio],
                FILTER(
                    ALL(dCalendario),
                    dCalendario[Mês/Ano]=vMesAno
                )
            )
        )
    VAR vTotalFatL3M = 
        SUMX(
            vTabelaL3M,
            VAR vMesAno = [MesAno]
            RETURN
            CALCULATE(
                [Total Fat],
                FILTER(
                    ALL(dCalendario),
                    dCalendario[Mês/Ano]=vMesAno
                )
            )
        )
RETURN
    IF(
        NOT(ISBLANK([Ticket Medio])),
        DIVIDE(
            vPonderacaoL3M,
            vTotalFatL3M
        )
    )

 

Draft_Locatarios.pbix

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

  • 0
  • Alunos
Em 18/02/2022 em 11:02, Bruno Abdalla de Souza disse:

Primeiro você precisa estabelecer a regra de negócio, ou seja, a ponderação será por qual cálculo? Por ticket de cada mês?
Depois, nos diga qual a regra e coloque um exemplo em pbix para que possamos lhe ajudar.

Bom dia @Bruno Abdalla de Souza , Como vai? segue PBIX anexo com a base.

A ponderação será por Faturamento mesmo...
Agradeço pelo suporte! Obrigado!

Draft_Locatarios.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 20/02/2022 em 19:20, Bruno Abdalla de Souza disse:

Deve ter jeito mais fácil, mas parece que funcionou:

Ticket Medio Ponderado L3M = 
    VAR vUltData = MAX(dCalendario[Data])
    VAR vUltData3M = EDATE(vUltData,-1)
    VAR vPrimData3M = EDATE(vUltData3M,-3)+1
    VAR vTabelaL3M = 
        DISTINCT(
            SELECTCOLUMNS(
                FILTER(
                    ALL(dCalendario),
                    dCalendario[Data] >= vPrimData3M && 
                    dCalendario[Data] <= vUltData3M
                ),
                "MesAno",
                [Mês/Ano]
            )
        )
    VAR vPonderacaoL3M = 
        SUMX(
            vTabelaL3M,
            VAR vMesAno = [MesAno]
            RETURN
            CALCULATE(
                [Total Fat] * [Ticket Medio],
                FILTER(
                    ALL(dCalendario),
                    dCalendario[Mês/Ano]=vMesAno
                )
            )
        )
    VAR vTotalFatL3M = 
        SUMX(
            vTabelaL3M,
            VAR vMesAno = [MesAno]
            RETURN
            CALCULATE(
                [Total Fat],
                FILTER(
                    ALL(dCalendario),
                    dCalendario[Mês/Ano]=vMesAno
                )
            )
        )
RETURN
    IF(
        NOT(ISBLANK([Ticket Medio])),
        DIVIDE(
            vPonderacaoL3M,
            vTotalFatL3M
        )
    )

 

Draft_Locatarios.pbix 216 kB · 3 downloads

Fala @Bruno Abdalla de Souza! Boa noite! Eu estou tentando entender aqui o cálculo. É um pouco complexo pra mim! 
Eu vi que vc usou Ticket Médio no cálculo..mas os principais KPIs aqui é o Faturamento e o Sales per Pax..
Talvez eu tenha que mudar alguma coisa no cálculo...Mas eu ainda não consegui entender tudo por ser um pouco complexo..
Eu conseguindo entender tudo, te retorno! Abs!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 23/02/2022 em 08:54, Bruno Abdalla de Souza disse:

@Thiago Pedrazi, chegou a testar?

Fala @Bruno Abdalla de Souza, Blz?

A princípio seu cálculo está correto sim!
Eu fiz algumas mudanças..eu vi que vc usou o Ticket Médio..mas foi falha minha na hora de te enviar a base. Pq aqui na empresa, o Ticket Médio não é o foco nesse momento pq a Qtde de Tickets que a gente apura não é 100% correta. Algumas lojas não enviam a Qtde correta de Tickets, então acaba não sendo 100% correto a gente ter Ticket Médio como KPI principal. A gente considera como KPI mto importante, o Faturamento e o Sales Per Pax (SPP). O que seria SPP? Como é um parque aqui, a gente calcula a Frequência de visitantes diariamente. Na base que te enviei acabei excluindo a tabela de Frequência de visitantes. Desculpe!
Mas o cálculo é simples: 
SPP = DIVIDE([Total Fat] , [Total Pax])

Eu pego o total de faturamento das lojas e divido pelo total de visitantes (Pax). Eu chego tipo num valor médio que cada visitante gasta nas lojas. Entende? É simples desse jeito! 

Eu não consegui entender tudo do cálculo..entendi só o início...Pode me explicar?

Eu fiz assim o cálculo com algumas mudanças usando as medidas Total Fat e SPP

SPP Ponderado L3M = 
    VAR vUltData = MAX(dCalendario[Data]) //ultima data que tenho faturamento - 31/01
    VAR vUltData3M = EDATE(vUltData,-1) // 31/12 - 1 mes antes do dia 31/01 - Ultima data que tenho faturamento
    VAR vPrimData3M = EDATE(vUltData3M,-3)+1 //Primeiro dia do Trimestre. Ultimo dia é 31/12. Então seria 01/10
    VAR vTabelaL3M = 
        DISTINCT(
            SELECTCOLUMNS(
                FILTER(
                    ALL(dCalendario),
                    dCalendario[Data] >= vPrimData3M && 
                    dCalendario[Data] <= vUltData3M
                ),
                "MesAno",
                [Mês/Ano]
            )
        )
    VAR vPonderacaoL3M = 
        SUMX(
            vTabelaL3M,
            VAR vMesAno = [MesAno]
            RETURN
            CALCULATE(
                [Total Fat] * [SPP],
                FILTER(
                    ALL(dCalendario),
                    dCalendario[Mês/Ano]=vMesAno
                )
            )
        )
    VAR vTotalFatL3M = 
        SUMX(
            vTabelaL3M,
            VAR vMesAno = [MesAno]
            RETURN
            CALCULATE(
                [Total Fat],
                FILTER(
                    ALL(dCalendario),
                    dCalendario[Mês/Ano]=vMesAno
                )
            )
        )
RETURN
    IF(
        NOT(ISBLANK([SPP])),
        DIVIDE(
            vPonderacaoL3M,
            vTotalFatL3M
        )
    )

image.png.a81f99469f500936a5aeafa6d960ba36.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...