5 Replies Latest reply: May 30, 2018 9:40 AM by Leonardo Silveira RSS

    Dúvida: Soma acumulada para os meses restantes

    Leonardo Silveira

      Olá, pessoal!

       

      Sou novato e desenvolvo alguns painéis básicos no trabalho. Recebemos uma alteração de requisitos que está me deixando maluco, pois não consigo fazer funcionar de jeito nenhum!

       

      Segue o gráfico:

       

      Chart.png

       

      O que acontece?

       

      A medida "Previsão" é um campo calculado através da seguinte fórmula:

       

      IF([Mês_comp] <=  Mês,

          Money(rangesum(above(sum(Valor),0, rowno()))),

          Money(rangesum(above(sum(Valor_Previsao),0, rowno())))

         

      )

       

      A mudança de requisitos citada acima é para calcular o valor de previsão somando o último valor da medida "Faturado Acumulado" aos valores de previsão para os meses remanescentes, de forma acumulada.

       

      Seria algo como:

       

      IF([Mês_comp] <=  Mês,

          Money(rangesum(above(sum(Valor),0, rowno()))),

          Money(rangesum(above(sum(Valor),0, rowno()))) + Money(rangesum(above(sum(Valor_Previsao),0, rowno())))

         

      )

       

      Porém quando executo Money(rangesum(above(sum(Valor_Previsao),0, rowno()))), são somados os valores desde Janeiro, e não somente a partir de Maio (conforme ilustrado no gráfico).

       

      Alguém pode me salvar nesta?

       

      Agradeço desde já!

        • Re: Dúvida: Soma acumulada para os meses restantes
          Clever Anjos

          Tente somente com isso

          IF([Mês_comp] <=  Mês,

              Money(rangesum(above(sum(Valor),0, rowno()))),

              Money(rangesum(above(sum(Valor)))) + Money(rangesum(above(sum(Valor_Previsao),0, rowno())))

            

          )

            • Re: Dúvida: Soma acumulada para os meses restantes
              Clever Anjos

              Se não funcionar, por favor anexe um exemplo dos seus dados

                • Re: Dúvida: Soma acumulada para os meses restantes
                  Leonardo Silveira

                  Olá, Clever!

                   

                  Obrigado pela resposta! Infelizmente, não funcionou. O que ele faz é somar o acumulado da previsão desde o início de Janeiro, e não a partir de Maio, quando não há valor de faturamento.

                   

                  Segue o modelo utilizado:

                   

                  Modelo.png

                   

                  Não sei se ficou claro, mas o que tenho de fazer é o seguinte:

                   

                  - Para os meses em que há valor de faturamento (barrinha verde), usar este valor como previsão, ao invés do valor disponibilizado na tabela "Previsão Fat";

                   

                  - Para os meses em que não houver faturamento, somar o último valor disponível ao valor previsto do mês em que não houve faturamento, e ir acumulando até dezembro.

                   

                  Na imagem original, o faturamento acumulado acaba em Abril. Logo, o valor da previsão será o valor de fato faturado (não faz sentido, mas é assim o requisito). Já em Maio, como não houve faturamento, deve-se pegar o valor de abril e somar ao previsto de Maio, e assim sucessivamente (Junho soma o previsto de Junho + Faturado de Abril + previsto de Maio...).

                   

                  O problema acontece justamente na parte do "somar o acumulado previsto", pois o rangesum pega desde Janeiro, e não deveria.

                    • Re: Dúvida: Soma acumulada para os meses restantes
                      Clever Anjos

                      Pode anexar um exemplo dos seus dados?

                      Se possivel o seu qvw

                        • Re: Dúvida: Soma acumulada para os meses restantes
                          Leonardo Silveira

                          Clever,

                           

                          consegui resolver com a ajuda de um amigo do trabalho.

                           

                          A solução foi criar uma tabela inline contendo o número associado ao mês do ano (ex: Janeiro = 1), e então subtrair este valor do número correspondente ao último mês faturado. Assim, o Qlik entende que deve começar a fazer o rangesum a partir daquele ponto, ao invés de considerar o ano todo.

                           

                          Simples, mas levou 3 dias até chegarmos a esta solução!

                           

                          Abaixo o código refinado:

                           

                          Money(IF(max("Número do último mês que teve faturamento")=0, 0,

                              IF(max("Número do último mês que teve faturamento")>0,

                                  IF(not(isnull("Nome do mês de Faturamento")),rangesum(above(sum("Valor Faturado"),0, rowno())),rangesum(above(sum("Valor Faturado"),0, rowno())) +    rangesum(above(sum("Valor da Previsão"),0,"Número do mês da tabela Inline"-max("Número do último mês que teve faturamento")))

                                  )))

                          )