Boa tarde a todos! Trago um problema do qual não consigo resolver de maneira inteligente...
Primeiramente darei o contexto de minhas tabelas, meu problema e como havia pensado em resolver. Assim como uma imagem ilustrando o que necessito.
Em anexo vocês irão encontrar um arquivo xlsx que contém 3 bases: dContratos, dCliente e fVolume.
Contexto.
dContratos - Base com informações dos contratos realizado por cada cliente dentro da empresa, com valores de data de inicio de data de fim de contrato.
dCliente - Base com informações dos clientes da empresa dos quais podem ter contratos ou não, aqui é uma base de clientes geral da empresa.
fVolume - Base com informações de compra em volume de cada cliente e a data em que foi realizada a compra.
Problema.
Eu preciso a principio criar 3 medidas separadas que calculem a média de volume de acordo com o tempo de contrato. Irei exemplifica-las abaixo.
Medida 1 - 6 Meses antes do contrato.
Esta medida deverá olhar meus clientes linha a linha e calcular a média mensal deles 6 meses antes do contrato ter iniciado.
Exemplo:
Se o meu cliente começou o contrato em jan/23 a média deve ser a soma do volume dos meses de jul/22 até dez/22 divido pela quantidade de meses disponíveis (com dados) neste período de 6 meses antes da data do contrato.
Este valor precisa estar somente na data de contrato jan/23
Medida 2 - 1 ano após a data do contrato.
Esta medida deverá olhar meus clientes linha a linha e calcular a média mensal deles 1 ano depois do contrato.
Exemplo:
Se o meu cliente começou o contrato em jan/23 a média deve ser a soma do volume dos meses de jan/23 até dez/23 divido pela quantidade de meses disponíveis (com dados) neste período de 12 meses após a data do contrato.
Este valor precisa estar somente na data de contrato jan/23
Medida 3 - 2 anos após a data do contrato.
Esta medida deverá olhar meus clientes linha a linha e calcular a média mensal deles 1 ano depois do aniversário de 1 ano do contrato.
Se o meu cliente começou o contrato em jan/23 a média deve ser a soma do volume dos meses de jan/24 até dez/24 divido pela quantidade de meses disponíveis (com dados) neste período de 12 meses após a data do contrato de 1 ano.
Este valor precisa estar somente na data de contrato jan/23
Detalhe: Esta medida precisa funcionar também quando colocar apenas o Vendedor no contexto de filtro, Supervisor, Filial, e etc.
Ela não pode ser restrita apenas ao contexto de filtro do COD CLIENTE SISTEMA 1
Minha solução meio errada.
6 Meses antes (Auxiliar) =
VAR vDatesinperiod7M = DATESINPERIOD(dCalendario[Date], MAX(dCalendario[Date]), -7, MONTH)
VAR vDatesinperiod1M = DATESINPERIOD(dCalendario[Date],MAX(dCalendario[Date]), -1, MONTH)
VAR vResult =
(
CALCULATE(
[Volume (#)],
vDatesinperiod7M
)
-
CALCULATE(
[Volume (#)],
vDatesinperiod1M
)
)
VAR vDivisao =
DIVIDE(
vResult,
[Contagem 6M (#)],
0
)
RETURN
vDivisao
Medida Final =
CALCULATE(
[A0 (Auxiliar)],
TREATAS(
CALCULATETABLE(
VALUES(fContratos[INICIO])
),
dCalendario[Inicio do Mês]
)
)
Está solução funciona individualmente quando filtro apenas um código, porém quando olho conforme a tabela abaixo ele calcula errado para os clientes, não sei o que pode ser e o que fiz para tentar consertar embora correto apenas piorou a performance do relatório e quebrou diversas visualizações que estavam com pouquissimos dados nela.
Segue em anexo o arquivo xlsx, o pbix e a imagem de onde quero que essa medida vá.
Agradeço antecipadamente a ajuda!
Pergunta
Lucas Denker
Boa tarde a todos! Trago um problema do qual não consigo resolver de maneira inteligente...
Primeiramente darei o contexto de minhas tabelas, meu problema e como havia pensado em resolver. Assim como uma imagem ilustrando o que necessito.
Em anexo vocês irão encontrar um arquivo xlsx que contém 3 bases: dContratos, dCliente e fVolume.
Contexto.
dContratos - Base com informações dos contratos realizado por cada cliente dentro da empresa, com valores de data de inicio de data de fim de contrato.
dCliente - Base com informações dos clientes da empresa dos quais podem ter contratos ou não, aqui é uma base de clientes geral da empresa.
fVolume - Base com informações de compra em volume de cada cliente e a data em que foi realizada a compra.
Problema.
Eu preciso a principio criar 3 medidas separadas que calculem a média de volume de acordo com o tempo de contrato. Irei exemplifica-las abaixo.
Medida 1 - 6 Meses antes do contrato.
Esta medida deverá olhar meus clientes linha a linha e calcular a média mensal deles 6 meses antes do contrato ter iniciado.
Exemplo:
Se o meu cliente começou o contrato em jan/23 a média deve ser a soma do volume dos meses de jul/22 até dez/22 divido pela quantidade de meses disponíveis (com dados) neste período de 6 meses antes da data do contrato.
Este valor precisa estar somente na data de contrato jan/23
Medida 2 - 1 ano após a data do contrato.
Esta medida deverá olhar meus clientes linha a linha e calcular a média mensal deles 1 ano depois do contrato.
Exemplo:
Se o meu cliente começou o contrato em jan/23 a média deve ser a soma do volume dos meses de jan/23 até dez/23 divido pela quantidade de meses disponíveis (com dados) neste período de 12 meses após a data do contrato.
Este valor precisa estar somente na data de contrato jan/23
Medida 3 - 2 anos após a data do contrato.
Esta medida deverá olhar meus clientes linha a linha e calcular a média mensal deles 1 ano depois do aniversário de 1 ano do contrato.
Se o meu cliente começou o contrato em jan/23 a média deve ser a soma do volume dos meses de jan/24 até dez/24 divido pela quantidade de meses disponíveis (com dados) neste período de 12 meses após a data do contrato de 1 ano.
Este valor precisa estar somente na data de contrato jan/23
Detalhe: Esta medida precisa funcionar também quando colocar apenas o Vendedor no contexto de filtro, Supervisor, Filial, e etc.
Ela não pode ser restrita apenas ao contexto de filtro do COD CLIENTE SISTEMA 1
Minha solução meio errada.
Está solução funciona individualmente quando filtro apenas um código, porém quando olho conforme a tabela abaixo ele calcula errado para os clientes, não sei o que pode ser e o que fiz para tentar consertar embora correto apenas piorou a performance do relatório e quebrou diversas visualizações que estavam com pouquissimos dados nela.
Segue em anexo o arquivo xlsx, o pbix e a imagem de onde quero que essa medida vá.
Agradeço antecipadamente a ajuda!
pbix_forum_duvida.pbix base_duvida_forum.xlsx
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora