8 Replies Latest reply: Jun 20, 2016 7:19 AM by Clever Anjos RSS

    set analysis - Acumular Valor

      Olá Pessoal,

      Estou montando um gráfico com a funcionalidade de set analysis que faz o seguinte:

      - Ao selecionar uma data, por exemplo dia 20/10/2014, são gerados dois indicadores:

        a) quantidade de valores  do dia 20/10/2014 até o último dia do mês.

        b) quantidade de valores acumulados até  dia 19/10/2014.

       

      Ou seja, o gráfico vai mostrar no eixo as informações referentes ao indicador A do dia 20,21,22  até o dia 31. Porém, o mesmo gráfico deverá mostrar os valores referentes ao indicador B acumulados no dia 19.  Sendo assim, se para o dia 18, 17 e 16 existir informação para o indicador B, as mesmas serão consolidadas no dia 19.

       

      Dúvida, como fazer isso com set analysis, o indicador A eu já matei, o problema é o B.

       

      [ Indicador A ]

      sum( {$<[DATA] = {'>=$(=[DATA])<=$(=DATA)))'}>} [Valor])


      [ Indicador B ]

      ?????

        • Re: set analysis - Acumular Valor
          Paulo Andre de Oliveira

          Filipe,

          Cria uma variavel com a informação do ultimo dia do mês 'date(monthend(data))' e variável da data selecionada e utiliza essas variáveis na expressão

           

          sum({<Data={'>=$(vDataSelec)<=$(vFimMes)'}>} Valor)

           

          Espero ter ajudado

            • Re: set analysis - Acumular Valor

              Paulo,

              Dúvida??? Caso, eu coloque o campo data no eixo do grafico e selecione o dia 20/10/2014, a função encaminhada conseguiria atender as regras supracitadas em relação ao [ Indicador B ].


              O gráfico vai mostrar no eixo as informações referentes ao indicador A do dia 20,21,22  até o dia 31. Porém, o mesmo gráfico deverá mostrar os valores referentes ao indicador B acumulados no dia 19.  Sendo assim, os valores anteriores a data selecionada serão consolidados totalmente no dia anterior.


              Exemplo: O eixo do grafico será o campo data. Seleção 20/10/2014


              Indicador A - Mostrar o valor dia a dia até o último dia do mês

                                  20,21,22...31

              Indicaro B - Mostrar todos os valores consolidados no dia anterior ao valor selecionado.

                                  Por exemplo, dias 16,17,18 e 19 terão seus valores consolidados no dia 19/10.


                • Re: set analysis - Acumular Valor
                  Paulo Andre de Oliveira

                  Filipe,

                   

                  Já estive nessa 'sinuca de bico', a solução foi colocar a seleção de data separado por Ano, Mês e Dia e não pela data, colocando o campo de Dia como dimensão. Com isso faça a expressão da seguinte forma:

                   

                  sum({<Ano=, Mes=, Dia=, Data={'>=$(vDataSelec)<=$(vFimMes)'}>} Valor)


                  e para a sua ficará dessa forma

                  sum( {$<Ano=, Mes=, Dia=,[DATA] = {'>=$(=[DATA])<=$(=DATA)))'}>} [Valor])

                    • Re: set analysis - Acumular Valor

                      É galera,

                      a saga continua... Estou precisando criar um gráfico, onde o usuário vai selecionar uma data e, a partir dessa data, deverá ser mostrado, em gráfico de barras empilhados, com linhas, a quantidade e os valores dos pagamentos suspensos, pagamentos em atraso, pagamento previsto para a data escolhida e para cada dia subsequente até o limite de 30 dias, sendo que a última informação é o valor a pagar após o ultimo dia do mês. É possível criar uma gráfico nesses moldes?

                        • Re: set analysis - Acumular Valor
                          Yuri Nicolett

                          O que vai estar em sua barra empilhada e o que vai estar na linha?

                          O eixo x será a data?

                            • Re: set analysis - Acumular Valor

                              Yuri,

                              o eixo será formado pela data,, barra formada por valor e linha qtd.

                                • Re: set analysis - Acumular Valor
                                  Yuri Nicolett

                                  Filipe, fazer isso por set analysis vai ser bastante custoso para o qvs realizar os cálculos, até acho possível, mas te oriento a utilizar outro método: De/Para de datas.

                                  Esse método consiste em criar uma tabela conforme modelo abaixo:

                                   

                                  //No meu exemplo vou fazer a data selecionada pegar somente os 4 próximos dias.

                                  Data_De, Data_Para

                                  16/12/2014, 16/12/2014

                                  16/12/2014, 17/12/2014

                                  16/12/2014, 18/12/2014

                                  16/12/2014, 19/12/2014

                                  16/12/2014, 20/12/2014

                                  17/12/2014, 17/12/2014

                                  17/12/2014, 18/12/2014

                                  17/12/2014, 19/12/2014

                                  17/12/2014, 20/12/2014

                                  17/12/2014, 21/12/2014

                                   

                                  Essa tabela você deve ligar com a sua tabela fato através da coluna Data_Para. A coluna Data_De será a coluna de filtro do usuário, desta forma, se filtrar 16/12/2014, seu gráfico retornará os dados dos dias 16,17,18,19 e 20.

                                  Desta forma os cálculos ficarão MUITO mais simples.

                                   

                                  Claro que você pode criar uma função para gerar esse relatório automaticamente, pois no seu caso são 30 dias a frente. Dicas para criar esse calendário: verifique as funções FOR e também "While Iterno".

                                   

                                  Qualquer dúvida fico à disposição

                      • Re: set analysis - Acumular Valor
                        Clever Anjos

                        Já conseguiu a resposta? Se sim, escolha uma e marque como "Correta" para fechar o tópico e nos ajudar a manter a comunidade organizada

                        Have fun, be Qlik