Qlik Community

Qlik Brasil

Welcome to the group for Brazil users. .All discussions will be in Portuguese.

Announcements
QlikWorld, June 24-25, 2020. Free virtual event for Data Integration and Data Analytics gurus. Register Now
Highlighted
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.

Tags (1)
1 Solution

Accepted Solutions
Highlighted
Contributor
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])

View solution in original post

6 Replies
Highlighted
Specialist III
Specialist 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
Highlighted
Contributor
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])

View solution in original post

Highlighted
Specialist II
Specialist 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



Highlighted
Specialist III
Specialist 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
Highlighted
Specialist II
Specialist 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?

Highlighted
Specialist III
Specialist 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