Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
cacosta48
Contributor
Contributor

Somar período anterior

Boa tarde pessoal!

Fiz uma formula para somar o periodo anterior, conforme abaixo:

>>>Mes anterior

=SUM({1<MonthYear={"$(=MonthName(addmonths(Date(max(EMISSAO)),-1)))"},TIPO_MOVTO={'V','E'},ITEM=p(ITEM),PARCEIRO=p(PARCEIRO),MEDICO=p(MEDICO),NOME_CLI=P(NOME_CLI),FABRICANTE=p(FABRICANTE),CONVENIO=p(CONVENIO),NOMEVEND=p(NOMEVEND),MUNICIPIO=p(MUNICIPIO)>}[BRUTO - DCOM - DFIN])

Gostaria de saber se existe alguma forma de não precisar incluir todos os campos, passível de seleção (CAMPO=p(CAMPO)), pois fazendo assim, se eu mudar/acrescentar qualquer campo na aplicação eu preciso ajustar a formula.

1 Solution

Accepted Solutions
cacosta48
Contributor
Contributor
Author

Obrigado pelo retorno, Thiago!

Mas assim não funciona porque eu preciso selecionar um mês e terá que vir a soma deste, que já estava ok e do mês anterior. Eu busquei outras soluções aqui na comunidade e resolvi da seguinte forma:

=SUM({<ANO=,Month=,MonthYear={"$(=MonthName(addmonths(Date(max(EMISSAO)),-1)))"},TIPO_MOVTO={'V','E'}>}[BRUTO - DCOM - DFIN])

View solution in original post

6 Replies
Thiago_Justen_

Carlito,

Talvez assim sirva:


Sum({<EMISSAO={">=$(=MonthStart(today (),-1))<=$(=MonthEnd(today (),-1))"},TIPO_MOVTO={'V','E'},>}[BRUTO - DCOM - DFIN])

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

Obrigado pelo retorno, Thiago!

Mas assim não funciona porque eu preciso selecionar um mês e terá que vir a soma deste, que já estava ok e do mês anterior. Eu busquei outras soluções aqui na comunidade e resolvi da seguinte forma:

=SUM({<ANO=,Month=,MonthYear={"$(=MonthName(addmonths(Date(max(EMISSAO)),-1)))"},TIPO_MOVTO={'V','E'}>}[BRUTO - DCOM - DFIN])

eduardo_dimperio
Specialist II
Specialist II

Thiago, tudo bem?

Pode me explicar seu codigo pq set analysis é meu fraco.

Sum({<EMISSAO={">=$(=MonthStart(today (),-1)) //Pelo que eu entendi aqui voce esta fazendo uma comparação de tudo o que for menor ou igual a  $(=MonthStart(today (),-1), tambem não entendo o motivo do $


<= // o que faz essa parte é um simples menor igual tambem? Se for o caso ele entra como AND ou OR?

Sum({<EMISSAO={">=$(=MonthStart(today (),-1))<=$(=MonthEnd(today (),-1))"},TIPO_MOVTO={'V','E'},>}[BRUTO - DCOM - DFIN])

// porque essa ultima virgula? Só erro de digitação?



Obrigado



Thiago_Justen_

Vamos por partes Eduardo,

>=$(=MonthStart(today (),-1)) >> considerando a data de hoje, esse pedaço retorna 01/07/2018

(MonthStart de today() - 1 mês)


<=$(=MonthEnd(today (),-1)) >> considerando a data de hoje, esse pedaço retorna 31/07/2018

(MonthEnd de today() - 1 mês)


O dollar expansion ($) se faz necessário pois estamos querendo o resultado da função MonthStart, por exemplo. Assim, o $ retorna o valor calculado...


Ou seja, aqui eu defino um intervalo para a EMISSAO: 01/07/2018 até 31/07/2018. Por isso uso >= E <=.


Quanto a última vírgula, é erro meu mesmo hehe...não deveria estar ali. Culpa do Ctrl+C e Ctrl+V. Quis aproveitar a expressão do Carlito e só editei com a minha ideia, daí esqueci dessa bendita vírgula aí.


Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
eduardo_dimperio
Specialist II
Specialist II

Essa era minha duvida, porque na minha cabeça estava que voce queria esse intervalo, mas como não vi um AND ou OR fiquei confuso. Entao sempre que não tiver um operador entre um intervalo sera considerado E? e se eu quisesse Ou como ficaria?

O dollar sempre vai preceder uma função?

Thiago_Justen_

Eduardo,

Veja, o dollar sign precede uma função dentro do set...mas não necessariamente precisaria aparecer num intervalo numérico. Exemplo: Quero somar vendas cujo dia de venda (independente de mês ou ano) seja entre 5 e 10:

Sum({<DiaVenda={">=5<=10"}>}ValorVenda)

Nesse caso, basta setar o intervalo e pronto (considerando que a utilização de aspas simples e duplas já seja fácil pra você, é isso).

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