Ir para conteúdo
  • 0

Calculo de clientes que não compraram - restrição de período + origem dos clientes da fvendas


Michele Tempos Sarai
Ir para solução Solucionado por CelsoEliezer ,

Pergunta

  • Alunos

Boa tarde, 
Estou com uma dificuldade para criar uma fórmula. Vou explicar o processo + a fórmula, que deu certo para depois apontar qual é o meu problema em questão

______
1 - a tela terá um parâmetro de filtro para retroceder os meses a partir do mês selecionado. Exemplo, a partir de junho de 2022, vou voltar  para o primeiro dia do mês anterior, ficando a primeira data em 01/05/2022
image.png.59c56d4076f29f05259a30b0b5356fbb.png

2 - Tenho que considerar os ids do contatos que estão nos pedidos, já que a tabela de cadastro de contatos (clientes) possui muita, mas muita sujeira. 
Fiz a contagem usando a seguinte fórmula 
 

Cobertura Clientes =
DISTINCTCOUNT(fVendas[ContatoID])

 

3 - Tive que identificar os clientes que compraram no período (dos filtros que citei em 1). A fórmula está abaixo e cheguei na necessidade que queria.
 

Clientes meses anteriores =
VAR vDataMax = MAX(dCalendarioPT[Data])
VAR vRetroceder = SELECTEDVALUE('Meses Analise'[Retroceder]) //este é o combo "retroceder meses" que consta no item 1
 
VAR vDataRetroceder =
SWITCH(
TRUE(),
vRetroceder = 1, FIRSTDATE(DATEADD(dCalendarioPT[Data], -1,MONTH)),
vRetroceder = 2, FIRSTDATE(DATEADD(dCalendarioPT[Data], -2,MONTH)),
vRetroceder = 3, FIRSTDATE(DATEADD(dCalendarioPT[Data], -3,MONTH)),
vRetroceder = 4, FIRSTDATE(DATEADD(dCalendarioPT[Data], -4,MONTH)),
vRetroceder = 5, FIRSTDATE(DATEADD(dCalendarioPT[Data], -5,MONTH)),
vRetroceder = 6, FIRSTDATE(DATEADD(dCalendarioPT[Data], -6,MONTH))
 
 
)
 
VAR vDatasUltimosDias = DATESBETWEEN(dCalendarioPT[Data],vDataRetroceder,vDataMax)
RETURN
 
CALCULATE(
[Cobertura Clientes],
vDatasUltimosDias
)

 

_____________________________

PROBLEMA:

Agora, tenho que identificar os clientes que não compraram, dentro do mesmo período. Porém,  a lista de clientes eu tenho que considerar os que estão na fvendas, ai começa o problema, porque, se estão na fvendas, houve em algum momento a venda....

campos seriam:
fvendas[contatoid]
medida =  [Valor Total]  = BLANK()    (acredito que seja essa comparação para verificar se tem valor de pedido dentro do período  vDatasUltimosDias



 

Clientes nao compraram meses anteriores =
VAR vDataMax = MAX(dCalendarioPT[Data])
VAR vRetroceder = SELECTEDVALUE('Meses Analise'[Retroceder])
 
VAR vDataRetroceder =
SWITCH(
TRUE(),
vRetroceder = 1, FIRSTDATE(DATEADD(dCalendarioPT[Data], -1,MONTH)),
vRetroceder = 2, FIRSTDATE(DATEADD(dCalendarioPT[Data], -2,MONTH)),
vRetroceder = 3, FIRSTDATE(DATEADD(dCalendarioPT[Data], -3,MONTH)),
vRetroceder = 4, FIRSTDATE(DATEADD(dCalendarioPT[Data], -4,MONTH)),
vRetroceder = 5, FIRSTDATE(DATEADD(dCalendarioPT[Data], -5,MONTH)),
vRetroceder = 6, FIRSTDATE(DATEADD(dCalendarioPT[Data], -6,MONTH))
 
 
)
 
VAR vDatasUltimosDias = DATESBETWEEN(dCalendarioPT[Data],vDataRetroceder,vDataMax)
 
//?????
// COMO MOSTRAR OS CLIENTES PRESENTES NA fvendas[ContatoID] que não apareceram na lista de clientes que compraram, isto é
//no período de vDataRetroceder

 
Editado por Michele Tempos Sarai
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Michele,  veja se ajuda...

Uma medida que mostra  clientes que não compraram em 30 dias,  veja se vc adapta ela para o seu caso concreto.  6 meses... 1 ano.... etc

Clientes Sem Compra 30D (conjuntos) = 
VAR vALLClientes = VALUES(vwDimCliente[cdCliente])
VAR vClientes30D = 
CALCULATETABLE(
    VALUES(vwFtVendas[cdCliente]);
    DATESINPERIOD(
        vwDimData[Data];
        MAX(vwDimData[Data]);
        -30;
        DAY
    )
)
RETURN
COUNTROWS(
    EXCEPT(vALLClientes; vClientes30D)
)

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

  • 0
  • Alunos

Olá Michele, acredito que uma solução pode ser assim:

Clientes Que não compraram =

VAR tabela_clientes =  ALL(ID_cliente_id) --Tabela com todas as IDs dos clientes

VAR tabelaclientescompraram =

CALCULATE(--Aqui irá retornar os clientes que compraram 

                        VALUES(d_cliente_id),

                        FILTER(

                                      fvendas,

                                      [Cobertura_clientes]

)

VAR tabelaclientesnaocompraram =

EXCEPT(tabelaclientescompraram, tabela_clientes) --Aqui ele irá retornar somente os clientes que não compraram

RETURN

COUNTROWS(tabelaclientesnaocompraram)

 

 

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

  • 0
  • Alunos
13 horas atrás, Renato Rossato disse:

Olá Michele, acredito que uma solução pode ser assim:

Clientes Que não compraram =

VAR tabela_clientes =  ALL(ID_cliente_id) --Tabela com todas as IDs dos clientes

VAR tabelaclientescompraram =

CALCULATE(--Aqui irá retornar os clientes que compraram 

                        VALUES(d_cliente_id),

                        FILTER(

                                      fvendas,

                                      [Cobertura_clientes]

)

VAR tabelaclientesnaocompraram =

EXCEPT(tabelaclientescompraram, tabela_clientes) --Aqui ele irá retornar somente os clientes que não compraram

RETURN

COUNTROWS(tabelaclientesnaocompraram)

 

 

Obrigada pela sugestão, @Renato Rossato, tentarei executar

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