3 Replies Latest reply: Mar 17, 2016 10:11 AM by Douglas Cioffi RSS

    Gráfico Cascata

    Douglas Cioffi

      Senhores, bom dia!

       

      Encontrei no link abaixo um modelo muito útil de gráfico Cascata:

       

      Qlik Sense Waterfall Chart (No Extension)

       

      Consegui utilizar certinho dentro da minha realidade o modelo Dynamic Waterfall, utilizando o script do Sense.

       

      Porém, somente consigo fazer um filtro.

       

      Por exemplo, gostaria de filtrar por AnoMês, por vendedor e por área, mas nenhum funciona.

       

      Tentei adaptar o codigo do modelo incluindo os campos que desejo filtrar, mas também não tive sucesso.

       

      O código que estou utilizando é:

       

      // Data from Data Source.

      Cascata:

      Load

      "Obs",

      Célula,

      Account,

      AnoMes_Vigência,

      Comissão,

      "Comissão REL",

      "Status de renovação"

      FROM [lib://11032016/Renovações_11.03.2016.xlsx]

      (ooxml, embedded labels, table is [Renovações 2016]);

       

      //This inline load is important to differentiate between offset and actual values.

       

      Waterfall_Dimension:

      LOAD * INLINE [

      Dim

      Offset

      Value

      ];

       

      // Two Steps are needed to achieve required table format.

       

      Step_1:

      Load

      Obs, <- Campo que desejo filtrar

      Célula, <- Campo que desejo filtrar (corresponde à área)

      Account, <- Campo que desejo filtrar (corresponde ao vendedor)

      AnoMes_Vigência, <- Campo que desejo filtrar (corresponde à área)

      SUM(Comissão) as [A Renovar],

      SUM(IF([Status de renovação]='Sim',[Comissão REL] )) as Sim,

      SUM(IF([Status de renovação]='Não',[Comissão REL] )) as Não,

      SUM(IF([Status de renovação]='Pendente',[Comissão REL] )) as Pendente,

      SUM(IF([Status de renovação]='Cancelada',[Comissão REL] )) as Cancelada

      Resident Cascata

      GROUP BY Obs, Célula, Account, AnoMes_Vigência ;

      Drop Table Cascata;

       

      Step_2:

      Crosstable(Stage,Amount)

      Load * Resident Step_1;

      Drop Table Step_1;

       

      //Multiplier and Offset fields are pre-defined and joined.

       

      Left join (Step_2)

      LOAD * INLINE [

      Stage, Multiplier, Offset

      A Renovar, 1, 0

      Não,-1, 1

      Pendente, -1, 1

      Cancelada, -1, 1

      Sim, 1, 0

      ];

       

       

      Alguém tem alguma ideia de como eu faço para que os filtros funcionem neste gráfico?

       

      Obrigado desde já!

        • Re: Gráfico Cascata
          Yuri Nicolett

          Douglas, como o cálculo esta fixo no script, você precisa adicionar esses campos na parte que faz o group by (no group by e também na listagem de campos)

            • Re: Gráfico Cascata
              Douglas Cioffi

              Valeu Yuri!

               

              Fiz uns testes aqui e já entendi a sistemática.

               

              Qdo eu conseguir chegar no resultado 100% esperado, eu posto o código aqui. (Y)

              • Re: Gráfico Cascata
                Douglas Cioffi

                Yuri, bom dia!

                 

                Apenas registrando aqui a resposta que tive de um outro colega e que funcionou perfeitamente.

                 

                Valeu novamente!!

                 

                ===========================================================

                 

                Hi Douglas,

                 

                This worked for me:

                1. Include all of the fields you want to use to filter in the load of Step_1
                2. Specify all filtering fields in the group by syntax of Step_1.
                3. Include number of filtering fields in crosstable syntax of Step_2

                 

                Using Rangaraju R's example the updated script for Step_1 and Step_2 for two filters - Year and Quarter - would be:

                Step_1:

                Load

                "YEAR",

                "Quarter",

                SUM(REV_A) as Rev_A,

                SUM(REV_B) as Rev_B,

                SUM(REV_C) as Rev_C,

                SUM(COGS) as COGS,

                SUM(EXPENSES) as Expenses,

                SUM(LOSS) as Loss,

                SUM("NET INCOME") as [Net Income]

                Resident Dynamic_Data Group By "YEAR", "Quarter";

                Drop Table Dynamic_Data;

                 

                Step_2:

                Crosstable(Stage,Amount,2)

                Load * Resident Step_1;

                Drop Table Step_1;