Qlik Community

Brasil

cancel
Showing results for 
Search instead for 
Did you mean: 
Modus_Pro
Contributor
Contributor

estoque no último mês de cada ano E no último mês do ano atual

Prezados,

Agradeço se puderem me dar algum auxílio na questão abaixo, já procurei nos fóruns mas as soluções não resolvem o problema do ano atual.

Eu preciso retornar de uma série histórica anual, a soma de valores em dezembro (somente) de cada ano fechado e a soma do último mês do ano atual, no exemplo é maio/2021.

Eu consigo obter os valores dos anos fechados (em dezembro) mas o valor do ano atual não aparece.

Vi que a expressão =aggr(max(fMes), Ano) me dá corretamente o último mês de cada ano, mas quando tento executar a soma dos valores com a expressão:

           aggr(Sum( {< fMES={$(=Max(fMES))} >} Qtde), Ano)

o ano de 2021 vem nulo, os demais somam corretamente.

Resultado:

CapturaQlik.JPG
Dados de exemplo:
LOAD

Date( MonthStart(DATA), 'MMM/yyyy' ) as [Período],
Month(DATA) as [Mês],
Num(Month(DATA)) as fMES,
Year(DATA) as [Ano],
CLIENTE as Cliente,
ATIVO as Qtde

Na planilha anexada tem os dados completos de 2017 a mai/2021

DATACLIENTEATIVO
01/01/2017Primeira Turma Sierra3494
01/01/2017Primeira Turma Charlie444
01/01/2017Segunda Turma Sierra3430
01/01/2017Terceira Turma Sierra3456
01/01/2017Quarta Turma Sierra3876

 

Qualquer ajuda agradeço,

Wedison

2 Solutions

Accepted Solutions
TiagoCardoso
Creator II
Creator II

Boa noite amigo, por favor dê uma estudada no script e na medida com SET Analysis.

É uma das maneiras para solucionar seu problema.

TiagoCardoso_0-1624675035531.png

 

TiagoCardoso_1-1624675053998.png

 

 

 

View solution in original post

Modus_Pro
Contributor
Contributor
Author

Obrigado pela dica Tiago,

Não utilizei exatamente o que mandou mas sua informação me guiou para o caminho correto.

Coloco aqui o script e a expressão que funcionou caso seja de ajuda para outra pessoa:

LOAD

Num(Month(DATA),'00') as fMES,
Date(DATA, 'YYYYMM') as AnoMes,
Year(DATA) as [Ano],
CLIENTE as Cliente,
ATIVO as Qtde

Resident Planilha1;

A expressão:

=aggr(if (max(Ano)=Max(all Ano),

Sum({<fMES={$(=Max(fMES))}>} Qtde) + Sum({<AnoMes={$(=Max(AnoMes))}>} Qtde),

Sum({<fMES={$(=Max(fMES))}>} Qtde)

), Ano)

 

Modus

View solution in original post

2 Replies
TiagoCardoso
Creator II
Creator II

Boa noite amigo, por favor dê uma estudada no script e na medida com SET Analysis.

É uma das maneiras para solucionar seu problema.

TiagoCardoso_0-1624675035531.png

 

TiagoCardoso_1-1624675053998.png

 

 

 

Modus_Pro
Contributor
Contributor
Author

Obrigado pela dica Tiago,

Não utilizei exatamente o que mandou mas sua informação me guiou para o caminho correto.

Coloco aqui o script e a expressão que funcionou caso seja de ajuda para outra pessoa:

LOAD

Num(Month(DATA),'00') as fMES,
Date(DATA, 'YYYYMM') as AnoMes,
Year(DATA) as [Ano],
CLIENTE as Cliente,
ATIVO as Qtde

Resident Planilha1;

A expressão:

=aggr(if (max(Ano)=Max(all Ano),

Sum({<fMES={$(=Max(fMES))}>} Qtde) + Sum({<AnoMes={$(=Max(AnoMes))}>} Qtde),

Sum({<fMES={$(=Max(fMES))}>} Qtde)

), Ano)

 

Modus