Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
ricardoregis
Contributor III
Contributor III

Fórmula para calcular em um período anterior ao mês atual

Bom dia!

Utilizei esta seguinte fórmula para calcular determinados valores ao longo de um ano no Qlik Sense:

=Sum({$<[Mês]*={'jan','fev','mar','abr','mai','jun'}>}[Valor])

O Set Analysis está correto e está me retornando o que preciso, mas gostaria de saber se há uma fórmula específica para que eu não preciso todo mês, mexer neste código inserindo o mês atual.

Atenciosamente.

1 Solution

Accepted Solutions
alexbenderkv
Contributor III
Contributor III

Oi Ricardo,


SUM({<DATA= {">=$(=YearStart(Today())) <=$(=Date(MonthStart(Today())-1))"} >} VALOR )


Caso esteja pegando o ano como base 2018,

Essa por exemplo pega do primeiro dia de janeiro 01/01/2018 até 30/06/2018, ai no mês que vem ela pega até 31/07/2018 e assim por diante sem precisar mexer

YearStart(Today()) --> Retorna o primeiro dia do ano

MonthStart(Today()) --> Retorna 01/07/2018

MonthStart(Today())-1 --> Retorna 30/06/2018


Ve se te ajuda assim

View solution in original post

9 Replies
karczevski
Contributor III
Contributor III

Month(Today())-1 não atenderia oque precisa?

alexbenderkv
Contributor III
Contributor III

Olá Ricardo,

Veja se alguma dessa maneira te ajuda

Today() --> 12/07/2018

Date(Today(),'YYYYMM')   --> 201807


DATE(AddMonths(Today(),1),'YYYYMM')   --> 201808

DATE(AddMonths(Today(),-1),'YYYYMM')  --> 201806

DATE(AddMonths(Today(),-2),'YYYYMM')  --> 201805

DATE(AddMonths(Today(),-3),'YYYYMM')  --> 201804

DATE(AddMonths(Today(),-12),'YYYYMM')  --> 201707  --> Mesmo Mês do Ano Passado


Abaixo a mesma comparação acima, porém dinamico, comparando o Mes atual com o Mes Passado


Valor de Venda do Mês Atual

SUM( {<DT_ANOMES_VENDA={"$(=Date#(Text(DATE(Today(),'YYYYMM'))))"}   >}  VALOR_VENDA)


Valor de Venda do Mês Anterior

SUM( {<DT_ANOMES_VENDA={"$(=Date#(Text(DATE(AddMonths(Today(),-1),'YYYYMM'))))"}   >}  VALOR_VENDA)


Valor de Venda do mesmo Mês no Ano Passado

SUM({<DT_ANOMES_VENDA={"$(=Date#(Text(DATE(AddMonths(Today(),-12),'YYYYMM'))))"}   >}  VALOR_VENDA)


Soma dos Ultimos 6 Meses:

SUM({<DT_ANOMES_VENDA={">=$(=MonthStart(AddMonths(Today(),-6))) <=$(=Date(MonthStart(Today())-1))"}>}  VALOR_VENDA)


Espero ter ajudado

ricardoregis
Contributor III
Contributor III
Author

Infelizmente não deu certo, era mais ou menos isso mesmo que eu tinha em mente.

Minha fórmula ficou assim:

=Sum({$<[Mês]*={Month(Today())-1}>}[Valor])

Atenciosamente.

ricardoregis
Contributor III
Contributor III
Author

Alex, boa tarde!

Você algo que  que faça uma soma "ATÉ", de janeiro até determinado mês?

karczevski
Contributor III
Contributor III

=Sum({< [Mês] = {'$(=[Mês]-1)'} >} [Valor])

Tente assim

Thiago_Justen_

Ricardo,

Somar até o mês corrente basicamente seria aplicar um sum(valor). Mas digamos que você queira apenas somar os valores do ano atual (jan até mês corrente):

Sum({<Ano={$(=Max(Ano))}>}Valor)


Ou ainda:

Sum({<Ano={"$(=Year(Today()))"}>}Valor)

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
alexbenderkv
Contributor III
Contributor III

Oi Ricardo,


SUM({<DATA= {">=$(=YearStart(Today())) <=$(=Date(MonthStart(Today())-1))"} >} VALOR )


Caso esteja pegando o ano como base 2018,

Essa por exemplo pega do primeiro dia de janeiro 01/01/2018 até 30/06/2018, ai no mês que vem ela pega até 31/07/2018 e assim por diante sem precisar mexer

YearStart(Today()) --> Retorna o primeiro dia do ano

MonthStart(Today()) --> Retorna 01/07/2018

MonthStart(Today())-1 --> Retorna 30/06/2018


Ve se te ajuda assim

ricardoregis
Contributor III
Contributor III
Author

Aleluia rsrs Alex, deu certo para o ano de 2018!

Mas fiquei curioso se esta mesma fórmula se aplicaria a um período anterior.

Muito obrigado.

alexbenderkv
Contributor III
Contributor III

Então Ricardo,

Geralmente quando eu faço algo parecido, sempre crio no Script um campo com ANO/MES,

tipo Date(MinhaData,'YYYY/MM') ai fica mais facil para trabalhar com períodos nos meus SetAnalysis.

Mas pode ir testando com as datas até chegar na data que deseja,

Caso queira pegar o primeiro dia do ano de 2017, por exemplo : AddMonths(YearStart(Today()),-12)

Pode usar a função AddMonths, passando como negativo que ele volta os meses que desejar.

Com esse Analysis aqui {">=  $(=DataDe:)   <=  $(=DataAté:)"} >} da para fazer bastante comparação com intervalos de Data.

Espero ter ajudado.

Não esqueça de finalizar o Tópico caso tenha sanado suas duvidas,

Abraço..

Att.

Alex M. Bender