Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
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.

1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

Entendi,

tente algo tipo :

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

acho que com agregação tem como fazer

View solution in original post

6 Replies
Anonymous
Not applicable
Author

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
Author

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,

Anonymous
Not applicable
Author

Entendi,

tente algo tipo :

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

acho que com agregação tem como fazer

cesaraccardi
Specialist
Specialist

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
Author

Rodrigo e Cesar,

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

Grato,

Not applicable
Author

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