Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa Tarde colegas,
Estou com uma dúvida que vem consumindo muito tempo do meu trabalho. Preciso saber quantos clientes ativos eu tenho na minha base de dados, o período do "ativo" é de 30, 60, 90 e 120 dias, são 4 KPI´s diferentes que estou fazendo.
Eu carrego diariamente a tabela de vendas, onde consta o "Numero Cliente", "Data Compra".
Sou novo na ferramenta e estou tendo muitas dificuldades em encontrar o valor correto, já usei algumas formulas e não funcionaram, como:
count({$<Year=, Month=, [Numero Cliente]={"=max({$<[Valor Compra SV]={'>0'}, Year=, Month=,
OrderDate={'<=$(=max(DataCompra))'}>} DataCompra)>=$(=max(DataCompra)-30)"}>}
distinct [Numero Cliente])
Count({<DataCompra={"=$(=date(today()-90))"}>}Distinct ([CartãoCompra])).
Obrigado.
Eu prefiro fazer esse tipo de questão à nivel de script,
Segue um exemplo em Qlikview de como fazer, com os KPIs que você precisa:
Mapping
DescDias:
Load * Inline
[
Id,Desc
1,30 Dias
2,60 Dias
3,90 Dias
4,120 Dias
0,Fora
];
dados:
Load
IdCliente,
DataCompra,
[Flag dias],
ApplyMap('DescDias',[Flag dias]) as Descrição;
Load
IdCliente,
DataCompra,
if
(
num(DataCompra)>=num(AddMonths(Today(),-1)),
1,
if (num(DataCompra)>=num(AddMonths(Today(),-2)) And num(DataCompra)<num(AddMonths(Today(),-1)),
2,
if (num(DataCompra)>=num(AddMonths(Today(),-3)) And num(DataCompra)<num(AddMonths(Today(),-2)),
3,
if (num(DataCompra)>=num(AddMonths(Today(),-4)) And num(DataCompra)<num(AddMonths(Today(),-3)),
4,
0
)
)
)
) as [Flag dias];
Load * Inline
[
IdCliente,DataCompra
1,01/01/2017
1,02/01/2017
2,01/07/2017
2,01/08/2017
3,01/06/2017
4,01/04/2017
5,01/05/2017
4,01/06/2017
3,01/05/2017
6,01/08/2017
8,05/08/2017
];
E as expressões dos KPIs serão por exemplo:
='30 Dias: '& count({<[Flag dias]={1}>}IdCliente)
='60 Dias: '& count({<[Flag dias]={2}>}IdCliente)
='90 Dias: '& count({<[Flag dias]={3}>}IdCliente)
='120 Dias: '& count({<[Flag dias]={4}>}IdCliente)
Felipe.
Guilherme
Tente:
Count({<DataCompra = {"$(=Date(Today()-90))"}>} Distinct ([Numero Cliente]))
Eu prefiro fazer esse tipo de questão à nivel de script,
Segue um exemplo em Qlikview de como fazer, com os KPIs que você precisa:
Mapping
DescDias:
Load * Inline
[
Id,Desc
1,30 Dias
2,60 Dias
3,90 Dias
4,120 Dias
0,Fora
];
dados:
Load
IdCliente,
DataCompra,
[Flag dias],
ApplyMap('DescDias',[Flag dias]) as Descrição;
Load
IdCliente,
DataCompra,
if
(
num(DataCompra)>=num(AddMonths(Today(),-1)),
1,
if (num(DataCompra)>=num(AddMonths(Today(),-2)) And num(DataCompra)<num(AddMonths(Today(),-1)),
2,
if (num(DataCompra)>=num(AddMonths(Today(),-3)) And num(DataCompra)<num(AddMonths(Today(),-2)),
3,
if (num(DataCompra)>=num(AddMonths(Today(),-4)) And num(DataCompra)<num(AddMonths(Today(),-3)),
4,
0
)
)
)
) as [Flag dias];
Load * Inline
[
IdCliente,DataCompra
1,01/01/2017
1,02/01/2017
2,01/07/2017
2,01/08/2017
3,01/06/2017
4,01/04/2017
5,01/05/2017
4,01/06/2017
3,01/05/2017
6,01/08/2017
8,05/08/2017
];
E as expressões dos KPIs serão por exemplo:
='30 Dias: '& count({<[Flag dias]={1}>}IdCliente)
='60 Dias: '& count({<[Flag dias]={2}>}IdCliente)
='90 Dias: '& count({<[Flag dias]={3}>}IdCliente)
='120 Dias: '& count({<[Flag dias]={4}>}IdCliente)
Felipe.
Via set analsys não vai funcionar porque a expansão das expressões (max(DataCompra), por exemplo) é feita a nivel de hipercubo, não considerando o cliente.
A melhor saida é criar um flag no script conforme sugestão do felipedl