Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
cacosta48
New 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.

Tags (1)
1 Solution

Accepted Solutions
cacosta48
New Contributor

Re: Somar período anterior

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])

6 Replies
thiago_justen
Valued Contributor III

Re: Somar período anterior

Carlito,

Talvez assim sirva:


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

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

Re: Somar período anterior

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_dimperi
Valued Contributor II

Re: Somar período anterior

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
Valued Contributor III

Re: Somar período anterior

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
WhatsApp: 24 98152-1675
Skype: justen.thiago
eduardo_dimperi
Valued Contributor II

Re: Somar período anterior

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
Valued Contributor III

Re: Somar período anterior

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
WhatsApp: 24 98152-1675
Skype: justen.thiago