Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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?
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.
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.
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
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.