Ir para conteúdo
  • 0

Forecasting de faturamento acumulado + media meta dia util.


Diogo Elias Moreira Da Silva
Ir para solução Solucionado por Joao Raulino ,

Pergunta

  • Alunos

Bom dia incomparaveis!

Estou penando com essa questão:

image.png.8054daa16464e66ef7b250664b7b2afe.png

Preciso criar uma medida que some o faturamento acumulado ate o ultimo dia com dados e para os dias futuros some a media de faturamento por dia UTIL para plotar num grafico de linhas comparando a META ACUMULADA, FATURAMENTO ACUMULADO e PROJECAO DO FATURAMENTO (REALIZADO + MEDIA poR DIA UTIL).

image.png.9621145b5b3d43f0e84ebf1156690e34.png

A projeçao seria a linha rosa por exemplo.

Abaixo as medidas que ja tenho relevantes para a questão.

Agradeço desde já a força.

Obrigado
 

MetaAcumulada =
CALCULATE(
    SUM('Metas Corp'[MetaDU]),
    FILTER(
        ALLSELECTED(dCalendario), // Use ALLSELECTED na tabela inteira, não apenas na coluna de data
        dCalendario[Data] <= MAX(dCalendario[Data])
    )
)
 
TotalFaturamentoAcumuladoMesVigente =
IF(
    MAX(dCalendario[Data]) > TODAY(),
    BLANK(),
    TOTALMTD(
        SUM('Vendas SQL'[VlFaturamento]),
        dCalendario[Data],
        ALL(dCalendario)
    )
)
 
Forecasting Faturamento =
IF(
    MAX(dCalendario[Data]) <= TODAY(),
    [TotalFaturamentoAcumuladoMesVigente],
    CALCULATE(
        [Media Faturamento DU],
        FILTER(
            ALLSELECTED(dCalendario),
            dCalendario[Data] <= MAX(dCalendario[Data])
        )
    )
)
 
Media Faturamento DU = [TotalFaturamento]/[Dias Úteis Decorridos]
 
Dias Úteis Decorridos =
CALCULATE(
    COUNTROWS(dCalendario),
    dCalendario[Dia Util?] = 1,
    dCalendario[Data] >= EOMONTH(TODAY(), -1) + 1,
    dCalendario[Data] <= TODAY()
)
 
Dias Úteis Restantes no Mês =
CALCULATE(
    COUNTROWS(dCalendario),
    dCalendario[Dia Util?] = 1,
    dCalendario[Data] > TODAY(),
    dCalendario[Data] <= EOMONTH(TODAY(), 0)
)
Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução

Boa @Diogo Elias Moreira Da Silva!

Tive aqui um tempinho para recriar o teu exemplo e fazer a medida corretamente (antes tinha feito no cel 😁). Usa a formula abaixo que vai dar certo:

Citar
Forecasting Faturamento Soma =
VAR _AcumuladoFaturamento =
    CALCULATE(
        SUM('Vendas SQL'[VlFaturamento]),
        DATESMTD(dCalendario[Data])
    )
VAR _AcumuladoMeta =
    CALCULATE(
        SUM('Metas Corp'[MetaDU]),
        DATESMTD(dCalendario[Data]),
        dCalendario[Data] >= TODAY()
    )
VAR _AcumuladoSoma =
    IF(
        MAX(dCalendario[Data]) < TODAY(),
        _AcumuladoFaturamento,
        _AcumuladoFaturamento + _AcumuladoMeta
    )
RETURN
    _AcumuladoSoma

image.png.967a12217790919f38485594326c80e7.png

Tenta ai do teu lado e vê se da certo 😉

Abs!

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

  • 0
  • Alunos

Suave @Diogo Elias Moreira Da Silva?

Na tua medida [Forecasting Faturamento] você precisa somar o valor que já foi acumulado pela [TotalFaturamentoAcumuladoMesVigente] ate o dia de hoje. A ideia seria algo assim:

Citar

Forecasting Faturamento =

VAR _AcumuladoMesVigente =

CALCULATE(
    [TotalFaturamentoAcumuladoMesVigente],

    dCalendario[Data] = TODAY()

)
RETURN
IF(
    MAX(dCalendario[Data]) <= TODAY(),
    _AcumuladoMesVigente + [TotalFaturamentoAcumuladoMesVigente],
    CALCULATE(
        [Media Faturamento DU],
        FILTER(
            ALLSELECTED(dCalendario),
            dCalendario[Data] <= MAX(dCalendario[Data])
        )
    )
)

Se quiser compartilha ai o .PBIX que vai ser mais fácil te ajudar.

E se essa resposta te ajudou, não esquece de marcar como melhor solução 😉

Abs!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
2 horas atrás, Joao Raulino disse:

Suave @Diogo Elias Moreira Da Silva?

Na tua medida [Forecasting Faturamento] você precisa somar o valor que já foi acumulado pela [TotalFaturamentoAcumuladoMesVigente] ate o dia de hoje. A ideia seria algo assim:

Se quiser compartilha ai o .PBIX que vai ser mais fácil te ajudar.

E se essa resposta te ajudou, não esquece de marcar como melhor solução 😉

Abs!

Bom dia Joao, grato pela sua resposta. vou tentar adaptar o PBIX para dados ficticios pois o modelo esta com dados sensiveis.
Tentei adaptar a sua medida e consegui somar para o proximo dia mas ainda nao entendi muito bem o motivo. Calculate é complicado kkk

image.png.80203d8c960e597badc55f2ae3e93728.png

Forecasting Faturamento Soma =
VAR _AcumuladoMesVigente =
 
CALCULATE(
    [TotalFaturamento],
 
    dCalendario[Data] = TODAY()
 
)
RETURN
IF(
    MAX(dCalendario[Data]) < TODAY(),
    _AcumuladoMesVigente + [TotalFaturamentoAcumuladoMesVigente],
    CALCULATE(
        [Media Faturamento DU]+[TotalFaturamentoAcumuladoMesVigente],
        FILTER(
            ALLSELECTED(dCalendario),
            dCalendario[Data] <= MAX(dCalendario[Data])
        )
    )
)
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
58 minutos atrás, Joao Raulino disse:

Boa @Diogo Elias Moreira Da Silva!

Tive aqui um tempinho para recriar o teu exemplo e fazer a medida corretamente (antes tinha feito no cel 😁). Usa a formula abaixo que vai dar certo:

image.png.967a12217790919f38485594326c80e7.png

Tenta ai do teu lado e vê se da certo 😉

Abs!

Espetacular amigo! muito obrigado! 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 30/01/2024 em 09:25, Joao Raulino disse:

Boa @Diogo Elias Moreira Da Silva!

Tive aqui um tempinho para recriar o teu exemplo e fazer a medida corretamente (antes tinha feito no cel 😁). Usa a formula abaixo que vai dar certo:

image.png.967a12217790919f38485594326c80e7.png

Tenta ai do teu lado e vê se da certo 😉

Abs!

Fala joao, tudo joia?

Agora que o mes virou e ja entraram dados reparei que a medida está somando o faturamento acumulado + a propria meta, ao inves de faturamento acumulado + a projecao do faturamento (que é a media do que foi faturado dividido pelos dias uteis decorridos). Consegue me ajudar com isso? grato desde ja

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Fala @Diogo Elias Moreira Da Silva!

Da uma olhada na medida abaixo:

Citar
Forecasting Faturamento Soma =
VAR _DiaDoMes = MAX(dCalendario[Dia_Mes])
VAR _AcumuladoFaturamento =
    CALCULATE(
        SUM('Vendas SQL'[VlFaturamento]),
        DATESMTD(dCalendario[Data])
    )
 VAR _AcumuladoProjecao =  
    CALCULATE(
        [Media Faturamento DU],
        DATESMTD(dCalendario[Data])
    )
VAR _AcumuladoSoma =
    IF(
        MAX(dCalendario[Data]) < TODAY(),
        _AcumuladoFaturamento,
        _AcumuladoFaturamento + _AcumuladoProjecao * (_DiaDoMes  - [Dias Úteis Decorridos])
    )
RETURN
    _AcumuladoSoma

image.png.d6994928b0c1dddd445f46ae1ddb02c1.png

Abs!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
3 horas atrás, Joao Raulino disse:

Fala @Diogo Elias Moreira Da Silva!

Da uma olhada na medida abaixo:

image.png.d6994928b0c1dddd445f46ae1ddb02c1.png

Abs!

Obrigado Joao! testei aqui e o caminho é esse! só tem um detalhezinho veja se consegue me ajudar:
Esse valor de R$ 383k é a media de faturamento por dia util ja decorrido, que está correto, porem quando projetamos a soma agregada estamos considerando que todos os dias futuros são dias uteis, porem devemos somar somente os dias uteis restantes. ou seja no exemplo abaixo a linha de previsao deve ficar estatica nos dias que nao sao considerados uteis (como na linha cinza).

Temos como incluir um filtro para considerar isto?
na tabela dCalendario já tenho a coluna "Dia Util?" que informa os dias uteis no mes
Dia util = 1
dia nao util = 0

image.png.4c79ff269007541b9a74617dcf50842d.png

 

Editado por Diogo Elias Moreira Da Silva
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Opa! Pescou bem o detalhe @Diogo Elias Moreira Da Silva:

Citar
Forecasting Faturamento Soma =
VAR _AcumuladoFaturamento =
    TOTALMTD(SUM('Vendas SQL'[VlFaturamento]), dCalendario[Data])
 
VAR _Projecao =  
    _AcumuladoFaturamento / [Dias Úteis Decorridos]
 
VAR _AcumuladoProjecao =  
    CALCULATE(
        SUMX(FILTER(dCalendario, dCalendario[Dia Util?] = 1), _Projecao),
        DATESMTD(dCalendario[Data])
    )
 
VAR _AcumuladoSoma =
    IF(
        MAX(dCalendario[Data]) < TODAY(),
        _AcumuladoFaturamento,
        _AcumuladoFaturamento + _AcumuladoProjecao - _Projecao * [Dias Úteis Decorridos]
    )
 
RETURN
    _AcumuladoSoma

image.png.abd6ac9e785aa87379336b9528ed94ac.png

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