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: 
mirbutzke
Contributor II
Contributor II

Fórmulas com períodos anteriores

Bom dia,

Gostaria de uma ajuda com manipulação de campos de períodos anteriores. Olhei as postagens referentes ao assunto mas ainda não consegui acertar a fórmula aqui. No exemplo tem os totais por ano na tabela e um campo onde deveria constar o total do ano anterior. Por enquanto a fórmula deste exemplo usa a data máxima, mas a ideia é fazer com que mostre o valor corretamente de acordo com o ano que o usuário seleciona.

Alguém sabe como manipular isso?

Obrigada.

Labels (2)
1 Solution

Accepted Solutions
mauroponte
Creator II
Creator II

Miriam,

Tente utilizar o seguinte:

count({<Ano={$(=max(Ano))}>}distinct CodEmpresa) : Traz o valor para o maior ano selecionado.

count({<Ano={$(=max(Ano)-X)}>} distinct CodEmpresa) : Onde tem o X coloque o numero de anos que voce deseja retroagir. Se colocar 1 Vai trazer o ano anterior ao maior ano selecionado, 2 vai trazer o valor de dois anos antes do maior ano selecionado, e assim por diante. Nesse caso se voce selecionar 2016 a expressão trará o valor do ano de 2015.

Caso voce queira trazer os ultimos 12 meses anteriores ao maior ano selecionado tente utilizar:

Count({<DataFiltroCritica={">=$(=date(MonthStart(AddMonths(max(DataFiltroCritica),-12)),'DD/MM/YYYY'))<=$(=date(MonthStart(AddMonths(max(DataFiltroCritica),-1)),'DD/MM/YYYY'))"}>} distinct CodEmpresa),

nesse caso se voce selecionar 2016, baseado na maior DataFiltroCritica desse ano a expressão deverá selecionar o valor acumulado dos 12 meses anteriores. Por exemplo se voce selecionar 2016, se já existem lançamentos em agosto será calculado o valor para o periodo de agosto/2015 a julho/2016. Se você selecionar 2015 será calculado o mesmo periodo de meses so que de 2014 a 2015. Ainda se voce selecionar um mês essa selação tambem será levada em consideração, por exemplo se voce seleciomar 2016 para ano e junho para mês a expressão deve calcular o valor para o periodo de junho/2015 a maio/2016.

Espero ter ajudado.

View solution in original post

7 Replies
luizclaudio
Creator
Creator

Bom dia Miriam

Dê uma olhada nesse tópico para ver se te ajuda

Acumular últimos 12 Meses - Via Script

mirbutzke
Contributor II
Contributor II
Author

Oi Luiz,

Obrigada, olhei o exemplo do script que você passou, mas a minha ideia é fazer o cálculo no campo pois tem mais campos no mesmo estilo de cálculo para fazer, gostaria de evitar colocar todos no script. Estou tentando aqui com o set analysis pra ver se consigo algo.

mauroponte
Creator II
Creator II

Miriam,

Tente utilizar o seguinte:

count({<Ano={$(=max(Ano))}>}distinct CodEmpresa) : Traz o valor para o maior ano selecionado.

count({<Ano={$(=max(Ano)-X)}>} distinct CodEmpresa) : Onde tem o X coloque o numero de anos que voce deseja retroagir. Se colocar 1 Vai trazer o ano anterior ao maior ano selecionado, 2 vai trazer o valor de dois anos antes do maior ano selecionado, e assim por diante. Nesse caso se voce selecionar 2016 a expressão trará o valor do ano de 2015.

Caso voce queira trazer os ultimos 12 meses anteriores ao maior ano selecionado tente utilizar:

Count({<DataFiltroCritica={">=$(=date(MonthStart(AddMonths(max(DataFiltroCritica),-12)),'DD/MM/YYYY'))<=$(=date(MonthStart(AddMonths(max(DataFiltroCritica),-1)),'DD/MM/YYYY'))"}>} distinct CodEmpresa),

nesse caso se voce selecionar 2016, baseado na maior DataFiltroCritica desse ano a expressão deverá selecionar o valor acumulado dos 12 meses anteriores. Por exemplo se voce selecionar 2016, se já existem lançamentos em agosto será calculado o valor para o periodo de agosto/2015 a julho/2016. Se você selecionar 2015 será calculado o mesmo periodo de meses so que de 2014 a 2015. Ainda se voce selecionar um mês essa selação tambem será levada em consideração, por exemplo se voce seleciomar 2016 para ano e junho para mês a expressão deve calcular o valor para o periodo de junho/2015 a maio/2016.

Espero ter ajudado.

mirbutzke
Contributor II
Contributor II
Author

Bom dia Mauro,

Deu certo sim, muito obrigada. As fórmulas que eu tentava aqui eram maiores e a solução foi tão simples

Abraços!

mauroponte
Creator II
Creator II

Ok Miriam,

Fico feliz em ter ajudado.

Na verdade já tem um tempo que estou preparando uma biblioteca de variaveis para ajudar a agilizar a utilização de peiodos de tempo em Set Analisys.

Assim que estiver pronto irei compartilhar.

Fique de olhos nos meus posts que em breve devo estar publicando.

Boa sorte!!

mauroponte
Creator II
Creator II

Miriam,

Conforme te falei em resposta anterior estava preparando uma biblioteca de variaveis para facilitar nosso trabalho com relação a utilização de seleção de periodos de tempo em Set Analisys.

Pois bem, acabei de terminar uma biblioteca que trata períodos de tempo, já que estes geralmente são os mais solicitados nos clientes.

Essa biblioteca visa facilitar esse trabalho.

Nela você encontrará variaveis para tratar periodos de anos e meses atuais e anteriores, acumulados de anos ou meses, valores de dias anteriores.

Estas veriaveis com seus parametros podem ser utilizadas diretamente no set analisys de sua expressões para selecionar os periodos desejados.

Espero que que tenha utilizada para você.

Att.,

mirbutzke
Contributor II
Contributor II
Author

Oi Mauro,

Muito legal essa tua biblioteca, vai ajudar sim.

Obrigada