Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
antoniodneto
Contributor

Fórmula SUM Data Max

Bom dia Pessoal,

Estou tentando criar uma fórmula para pegar o SUM do DATA MAX e também o DATA MAX -1 para pegar a referência de um mês anterior ao DATA MAX, porém não estou conseguindo.

Estou utilizando a fórmula para pegar o DATA MAX

SUM({$<[anomes.autoCalendar.DATA_BASE]={">=$(=Addmonths(max([anomes.autoCalendar.DATA_BASE])))"}>}RISCO_B_1_10)



E a fórmula para pegar uma data anterior ao DATA MAX, porém ele me retorna a mesma soma do DATA MAX não do mês anterior.


SUM({$<[anomes.autoCalendar.DATA_BASE]={">=$(=Addmonths(max([anomes.autoCalendar.DATA_BASE]),-1))"}>}RISCO_B_1_10)


O meu formato de data é 201801 por exemplo.

Poderiam me ajudar?

Abraço

Tags (1)
1 Solution

Accepted Solutions
thiago_justen
Valued Contributor III

Re: Fórmula SUM Data Max

Segue app com as alterações necessárias para resolução do problema.

Apenas para constar, seguem expressões adotadas na sua pivot table:

SEM ATRASO (APENAS ACRESCENTEI O {1} )

sum({1}RISCO_A_EM_DIA)

/

(sum({1}RISCO_A_EM_DIA)+sum({1}RISCO_B_1_10)+sum({1}RISCO_C_11_14)+SUM({1}RISCO_D_15_30)+SUM({1}RISCO_E_31_60)+SUM({1}RISCO_F_61_90)+SUM({1}RISCO_G_91_120)+SUM({1}RISCO_H_121_150)+SUM({1}RISCO_I_151_180)+SUM({1}RISCO_J_OVER_180))

11 A 30 DIAS (APENAS ACRESCENTEI O {1} )

(SUM({1}RISCO_C_11_14)+SUM({1}RISCO_D_15_30))

/

SUM({1}RISCO_EM_DIA_LAG1)

EXPRESSÃO SOLICITADA

before(sum({1}RISCO_B_1_10))/1000000


Resultado obtido:

Capturar.PNG

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
23 Replies
thiago_justen
Valued Contributor III

Re: Fórmula SUM Data Max

Antonio,

Substitua para:

Mês Corrente:

SUM({$<[anomes.autoCalendar.DATA_BASE]={">=$(=MonthStart(max([anomes.autoCalendar.DATA_BASE])))<=$(=MonthEndt(max([anomes.autoCalendar.DATA_BASE])))"}>}RISCO_B_1_10)


Mês Anterior:

SUM({$<[anomes.autoCalendar.DATA_BASE]={">=$(=AddMonths(MonthStart(max([anomes.autoCalendar.DATA_BASE])),-1))<=$(=AddMonths(MonthEndt(max([anomes.autoCalendar.DATA_BASE])),-1))"}>}RISCO_B_1_10)

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

Re: Fórmula SUM Data Max

Thiago,

Acho que estou usando campos errados.

Na fórmula eu vi que tem um anomes mas eu não tenho esse campo, o único que eu tenho é o DATA_BASE.

thiago_justen
Valued Contributor III

Re: Fórmula SUM Data Max

Copiei da sua fórmula...

Mas a ideia é a seguinte:

Mês Corrente:

SUM({$<SEU_CAMPO_DATA={">=$(=MonthStart(max(SEU_CAMPO_DATA)))<=$(=MonthEndt(max(SEU_CAMPO_DATA)))"}>}RISCO_B_1_10)


Mês Anterior:

SUM({$<SEU_CAMPO_DATA={">=$(=AddMonths(MonthStart(max(SEU_CAMPO_DATA)),-1))<=$(=AddMonths(MonthEndt(max(SEU_CAMPO_DATA)),-1))"}>}RISCO_B_1_10)

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

Re: Fórmula SUM Data Max

Thiago quando eu utilizo essa fórmula está retornando 0. Eu reparei que no nome da fórmula a parte da data está aparecendo como >=6/1/2452<=6/30/2452, será que é necessário dar algum format da DATA, lembrando que ela está como YYYYMM (201801)

Abraço

thiago_justen
Valued Contributor III

Re: Fórmula SUM Data Max

Antonio, sugiro que você não utilize essa fórmula com um campo ano/mês. Procure utilizar um campo de data no formato DD/MM/YYYY.

Se isso não for possível precisaremos alterar a expressão pois o AddMonths nesse seu campo vai "bugar".

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

Re: Fórmula SUM Data Max

Thiago,

Arrumei o formato para DD/MM/YYYY mas a fórmula continua trazendo o valor do mês zero.

Por exemplo

ANOMES  201712 201801 201802

VALOR     201712 201801 201802

Onde deveria trazer os valores

ANOMES  201712 201801 201802

VALOR      201716 201712 201801

Entendeu? Abraço!

thiago_justen
Valued Contributor III

Re: Fórmula SUM Data Max

Entendi o que houve, mas me deixe perguntar:

Onde e de que maneira você tratou o campo data? Consegue printar o tratamento e o output?

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

Re: Fórmula SUM Data Max

Antonio;

Em seu script, transforme o campo [anomes.autoCalendar.DATA_BASE] em Date;

Load

    Date(Date#([anomes.autoCalendar.DATA_BASE],'YYYYMM')) As 'anomes.autoCalendar.DATA_BASE',

    ...

antoniodneto
Contributor

Re: Fórmula SUM Data Max

Thiago, segue.

erro_data.png

Agradeço a ajuda!