Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
vandrecarlos
Contributor III
Contributor III

Valores Período Anterior ao Selecionado - Set Analysis

Pessoal, boa tarde!

 

Estou precisando criar uma medida no meu Set Analysis onde eu possa pegar todas quantidades faturadas de material num período anterior a minha data selecionada.

Segue fórmula base:

 

------------------------------------------------------------------------------------------------------------------------

//QUANTIDADE DE ITENS FATURADOS

(
SUM({<[Tipo documento de faturamento - (VBRK-FKART)]={'F2B','ZBON'},
[Data doc.faturamento p/índice de docs.faturamto.e impressão - (VBRK-FKDAT)]=Data,
[Estorno Faturamento - FLAG - (VBRK-FKSTO)]={' '}>}
[Quantidade faturada efetivamente - (VBRP-FKIMG/VRKME)])
)

------------------------------------------------------------------------------------------------------------------------

Como consigo encaixar na fórmula que ao selecionar o filtro de "Data" o mesmo me traga valores de outro período? Podendo ser em dias,no caso para cálculo de 30, 60, 90, dias anteriores ao período selecionado.

 

Tentei colocar a seguinte expressão dentro do SetAnalysis:

Data={DATE(DATE#(Data,'DD/MM/YYYY')-30,'DD/MM/YYYY')}

Porém me retorna que contém erro de fórmula.

 

Alguém consegue me ajudar? Obrigado!

 

2 Solutions

Accepted Solutions
danilostochi
Creator II
Creator II

crie um exemplo com load *  inline, mas tenho quase certeza que isso pode lhe atender...

 

Você pode passar um período >= <=

=sum({$<data = {">=$(=MonthStart(Max(data),-2))<=$(=MonthEnd(Max(data),-2)))"}>}valor)

conforme sua necessidade, vai implementando -2 para -1 (menos um mês)

 

+55(44) 9 9993-3605, WhatsApp
E-Mail or Skype - danilo16stochi@hotmail.com

View solution in original post

vandrecarlos
Contributor III
Contributor III
Author

@danilostochi 

 

Obrigado pelo seu reply, testei sua fórmula, fazendo umas pequenas modificações (reordenando dentro do Set Analysis) e colocando meus campos necessários e funcionou.

 

Minha fórmula ficou assim:

 

(
SUM({<
[Data doc.faturamento p/índice de docs.faturamto.e impressão - (VBRK-FKDAT)]=Data,
[Data doc.faturamento p/índice de docs.faturamto.e impressão - (VBRK-FKDAT)]={">=$(=MonthStart(Max(Data),-3))<=$(=MonthEnd(Max(Data),-1))"},
Data={">=$(=MonthStart(Max(Data),-3))<=$(=MonthEnd(Max(Data),-1))"},
[Tipo documento de faturamento - (VBRK-FKART)]={'F2B','ZBON'},
[Estorno Faturamento - FLAG - (VBRK-FKSTO)]={' '}>}
[Quantidade faturada efetivamente - (VBRP-FKIMG/VRKME)])
)

 

Muito obrigado a todos!

View solution in original post

8 Replies
RafaMartins
Creator II
Creator II

Boa tarde,

Tente usar o modificador $1 no set, na teoria ele retorna o valor anterior ao da seleção, se selecionar 2019 ele retorna 2018.

 

vandrecarlos
Contributor III
Contributor III
Author

Boa tarde, Rafael!

 

Este comando não me ajuda, pois seleciono data como Dia/Mês/Ano.

E para o período anterior, eu preciso defini-lo em 3, 6, 9 ou até 12 meses a data de análise inicial, entendeu?

danilostochi
Creator II
Creator II

Boa tarde,

tendo os seguintes dados:

dados:
LOAD * INLINE [
id, nome, data, valor
1, nome1, 01/01/2018, 10
2, nome2, 01/02/2018, 20
3, nome3, 13/02/2018, 30
4, nome4, 15/02/2018, 40
5, nome5, 15/02/2019, 50
6, nome6, 20/03/2019, 60
7, nome7, 22/04/2019, 70
8, nome8, 23/04/2019, 80
9, nome9, 24/04/2019, 90
];

 =sum({1<data = {"$(=date(max(data)-1))"}>}valor)   //retorna a seleção -1 dia, caso queira meses procure algo //relacionado a MonthStart()

Agora se você tiver períodos furados de dadas  exemplo:

6, nome6, 20/03/2019, 60
7, nome7, 22/04/2019, 70

 

Para que seja considerado a seleção anterior a melhor alternativa seria utilizar a  função =Peek() no script de cargas

dados:
LOAD Peek(data) as data_anterior, * INLINE [
id, nome, data, valor
1, nome1, 01/01/2018, 10
2, nome2, 01/02/2018, 20
3, nome3, 13/02/2018, 30
4, nome4, 15/02/2018, 40
5, nome5, 15/02/2019, 50
6, nome6, 20/03/2019, 60
7, nome7, 22/04/2019, 70
8, nome8, 23/04/2019, 80
9, nome9, 24/04/2019, 90
10, nome10, 28/04/2019, 100
];

=sum({$<data = {"$(=max(date(data_anterior)))"}>}valor) //objeto de texto

Screenshot_37.png

 

 

 

+55(44) 9 9993-3605, WhatsApp
E-Mail or Skype - danilo16stochi@hotmail.com
vandrecarlos
Contributor III
Contributor III
Author

@danilostochi Boa tarde! Obrigado pela resposta.

 

Mas no meu caso, utilizo data calendário, ou seja, tenho todos os dias do ano disponíveis no meu filtro, uma vez que defino a minha data de documento de faturamento = data calendário.

 

O que eu preciso fazer é uma média de consumo, por exemplo.

 

Tenho 5.700 peças de um item faturadas em Dezembro/18 e gostaria de saber qual a média de consumo nos últimos 3 meses (Novembro/18, Outubro/18, Setembro/18), entendeu?

Caso eu altere meu período para Outubro/18, a minha média deveria ser dos meses (Setembro/18, Agosto/18, Julho/18).

Gustavo
Contributor II
Contributor II

Boa tarde!

Tenta o seguinte:

(
SUM({<Data={">=$(=MonthStart(Max(Data),-3))<=$(=Max(Data))"},[Tipo documento de faturamento - (VBRK-FKART)]={'F2B','ZBON'},
[Data doc.faturamento p/índice de docs.faturamto.e impressão - (VBRK-FKDAT)]=Data,
[Estorno Faturamento - FLAG - (VBRK-FKSTO)]={' '}>}
[Quantidade faturada efetivamente - (VBRP-FKIMG/VRKME)])
)

danilostochi
Creator II
Creator II

crie um exemplo com load *  inline, mas tenho quase certeza que isso pode lhe atender...

 

Você pode passar um período >= <=

=sum({$<data = {">=$(=MonthStart(Max(data),-2))<=$(=MonthEnd(Max(data),-2)))"}>}valor)

conforme sua necessidade, vai implementando -2 para -1 (menos um mês)

 

+55(44) 9 9993-3605, WhatsApp
E-Mail or Skype - danilo16stochi@hotmail.com
vandrecarlos
Contributor III
Contributor III
Author

@danilostochi 

 

Obrigado pelo seu reply, testei sua fórmula, fazendo umas pequenas modificações (reordenando dentro do Set Analysis) e colocando meus campos necessários e funcionou.

 

Minha fórmula ficou assim:

 

(
SUM({<
[Data doc.faturamento p/índice de docs.faturamto.e impressão - (VBRK-FKDAT)]=Data,
[Data doc.faturamento p/índice de docs.faturamto.e impressão - (VBRK-FKDAT)]={">=$(=MonthStart(Max(Data),-3))<=$(=MonthEnd(Max(Data),-1))"},
Data={">=$(=MonthStart(Max(Data),-3))<=$(=MonthEnd(Max(Data),-1))"},
[Tipo documento de faturamento - (VBRK-FKART)]={'F2B','ZBON'},
[Estorno Faturamento - FLAG - (VBRK-FKSTO)]={' '}>}
[Quantidade faturada efetivamente - (VBRP-FKIMG/VRKME)])
)

 

Muito obrigado a todos!

danilostochi
Creator II
Creator II

Eu te passei o caminho das pedras, mas a ideia é a mesma poderia marcar como solução tal indicação, pois foi útil.

+55(44) 9 9993-3605, WhatsApp
E-Mail or Skype - danilo16stochi@hotmail.com