Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
Not applicable

Problemas com set analysis (ano anterior)

Boa tarde pessoal,

Estou com uma dificuldade em resolver uma questão utilizando o set analysis.

A expressão tem que retornar o valor do ano anterior, mas a expressão que eu montei me retorna somente se existir um ano selecionado:

SUM({$<ANO={$(=ONLY(ANO)-1)}>} TOTAL VALOR)

A idéia é utilizar a mesma regra do set analysis para fazer uma expressão em que eu consiga definir o ano anterior, e também o Mês/Ano anterior do atual:

Com testes que realizei acredito que o problema esteja neste trecho "=ONLY(ANO)-1", porque se eu inserir manualmente um ano especifico, por exemplo: 2011 todos os anos demonstram a mesma informação.

Segue em anexo um arquivo de exemplo.

Tags (1)
1 Solution

Accepted Solutions
rvsilvestre
Contributor III

Re: Problemas com set analysis (ano anterior)

Entendi,

tente algo tipo :

aggr( above(sum(valor)), Ano , MesAno )

acho que com agregação tem como fazer

6 Replies
rvsilvestre
Contributor III

Re: Problemas com set analysis (ano anterior)

Boa tarde,

Esse é um problema do set Analysis que até hoje não consegui resolver, a expressão, dentro do set analysis , primeiro é executada para depois, o que estiver dentro do sum(), considerar a dimensão.

Não sei qual seria a situação, mas acredito que o mais fácil é fazer com before() e after() .. caso você não va utiliza-lo em uma tabela com dimensão Ano, você pode usar a mesma função before() ou after() dentro de uma agregação,

aggr(expressão , dimensão).

caso seja referente ao Ano atual , e o Ano anterior,  da para usar o  max ou maxstring no lugar do only  ...

Depende muito de como você vai usar isso, talvéz se você puder postar qual seria essa situação mais complexa, fique mais facil de dar uma idéia.

Not applicable

Re: Problemas com set analysis (ano anterior)

Rodrigo,

No caso em que estou tentando resolver, seria em uma tabela dinâmica onde teria como dimensão "Grupo", "Ano" e "Ano-Mês".

As dimensões Ano e Ano-Mês é transformada em colunas, arrastando as dimensões:

Grupo20112012
2011-012011-022012-012012-02
AnteriorAtualAnteriorAtualAnteriorAtualAnteriorAtual
A0107110713
B0208211814
C0309312915

O problema de utilizar o before(), after() é que você precisa definir a quantidade de registros anteriores que precisa voltar, já no set analysis você só define o periodo que deseja realizar a conta.

Pode ser que não exista valores em um determinado mês, se utilizar estas funções o retorno das informações podem não condizer com o mês que esta sendo analisado.

Att,

rvsilvestre
Contributor III

Re: Problemas com set analysis (ano anterior)

Entendi,

tente algo tipo :

aggr( above(sum(valor)), Ano , MesAno )

acho que com agregação tem como fazer

cesaraccardi
Valued Contributor

Re: Problemas com set analysis (ano anterior)

Olá Eduardo, da uma olhada no anexo...

Algumas observações:

* Estou usando o rangesum para poder trabalhar com vários valores
* Parametrizei o before com TOTAL, para que ele funcione com mais dimensões
* O número de passos para retroceder eu acabo tendo que informar se usar o before, como você mesmo comentou... neste caso coloquei a função GetPossibleCount para ficar dinâmico
* Para o exemplo em questão atendeu, só não estou certo se isto vai funcionar para o seu problema.

Abraços.

Not applicable

Re: Problemas com set analysis (ano anterior)

Rodrigo e Cesar,

Obrigado pelo retorno, assim que eu realizar a verificação aviso se deu certo ou não.

Grato,

Not applicable

Re: Problemas com set analysis (ano anterior)

Obrigado pela ajuda, desculpem a demora para responder, mas não tinha tempo para verificar a questão.

Resolveu utilizando a função ABOVE()

Obrigado