Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
mwildemberg
Explorer II
Explorer II

Problemas com modificadores com expansões no set analysis

Boa tarde,

Estou com um problema quando utilizo uma função dentro do set analysis. Num exemplo hipotético, eu tenho valores mensais por categorias. Eu preciso pegar a variação entre a soma dos valores do ano selecionado com a soma dos valores do ano anterior considerando somente os meses correspondentes. No meu caso, uma categoria pode ter valor somente a partir de um determinado mês no meio do ano corrente. Eu consegui usar a função

sum({<ano={$(=only([ano])-1)},mes=P(mes)>}valor)

para o ano anterior, onde mes=P(mes) me garante que serão considerados somente os meses do ano atual caso a ano atual ainda não tenha terminado e a função

sum({<mes={">=$(#=min({<ano={$(#=only([ano])-1)}>}mes) )"}>}valor)

para o ano atual, onde mes={">=$(#=min({<ano={$(#=only([ano])-1)}>}mes) )"}>} me garante que serão considerados somente os valores a partir no menor mês no ano anterior.

Estas funções funcionam se eu tiver a categoria selecionada. Caso não exista seleção de categoria, a função usada para o ano atual considera o menor mês de todas as categorias, ou seja, o que está entre {">=$(...)"} não considera a dimensão.

Segue anexado o qvw que representa o que foi dito. No gráfico tabela eu inclui uma coluna com o menor mês para mostrar que, quando usado fora de {">=$(...)"}, ele funciona.

Para mostrar o meu problema basta verificar a variação para a "categoria 2" no ano de 2016 com a "categoria 2" selecionada e sem seleção.

Alguém tem uma sugestão para resolver este problema?

Labels (1)
1 Solution

Accepted Solutions
nicolett_yuri

O set analysis é resolvido antes do cálculo do gráfico, ou seja, a condicional utilizada no set analysis não vai respeitar os valores de sua dimensão.

Provavelmente você vai ter que trabalhar com IF, pois este considera cada valor de sua dimensão no cálculo.

View solution in original post

3 Replies
nicolett_yuri

O set analysis é resolvido antes do cálculo do gráfico, ou seja, a condicional utilizada no set analysis não vai respeitar os valores de sua dimensão.

Provavelmente você vai ter que trabalhar com IF, pois este considera cada valor de sua dimensão no cálculo.

Clever_Anjos
Employee
Employee

Você usa a função only que quando existe mais de um ano possível irá retornar nulo.

O mais aconselhável seria utilizar uma função Max() por exemplo, pois mesmo que não exista seleção irá trazer o ano mais recente

mwildemberg
Explorer II
Explorer II
Author

Minha dúvida é: considerando Expressão 1 sendo sum({<ano={$(=only([ano])-1)},mes=P(mes)>}valor) e Expressão 2 sendo sum({<mes={">=$(#=min({<ano={$(#=only([ano])-1)}>}mes) )"}>}valor). Se tando a Expressão 1 quanto a Expressão 2 contém funções do set analysis, porque somente a Expressão 1 respeita os valores da dimensão.


Usar o IF é uma opção, mas se eu tiver uma quantidade grande de categorias, ficaria uma função muito extensa de difícil manutenção. Não existe uma solução mais simples?


Obrigado pela ajuda. Já tenho uma solução.