4 Replies Latest reply: Jun 30, 2014 3:07 PM by Vlad Gutkovsky RSS

    Offset in Waterfall Chart



      In waterfall chart the offset is defined as follows:


      = if (GetSelectedCount(Phase_Level_Txt) = 1, 0,

        if (rowno(total) = 1, 0,top(total Counter)- rangesum((top(total Counter,2,rowno(total)))))



      Can anybody please explain what it does and how it positions the columns?

      In particular I am interested in this part of the code:

      rangesum((top(total Counter,2,rowno(total))))



      The probelem does not seem to be the OFFSET, because it seems it calculates it correctly.

      However, I can't find explanation why the chart positions first 5 (6) columns correctly, and then inserts the gaps between the two last columns taht have values 501 and 2 respectively. (please look at the picture below)






        • Re: Offset in Waterfall Chart
          Vlad Gutkovsky

          Try changing it to this (assuming your actual expression is named Counter):


          if (GetSelectedCount(Phase_Level_Txt) = 1,


                 if(rowno(total)<>1,top(total Counter),0) - rangesum(above(total Counter,0,rowno(total)-1))





            • Re: Offset in Waterfall Chart

              Hi Vlad!

              Thanks for your reply.
              However, the chart stayed exactly the same.


              The confusing is - the offset is apparently calculated ok (according to the table seen in the picture above).
              I don't get why then the chart inserts two gaps ONLY between two last elements.

              Moreover, it seems that all other elements (red bars) are ok positioned...




              • Re: Offset in Waterfall Chart

                Hi Vlad,


                I have noticed also the following:



                First row (Cancelld_YN = 'N') is the starting column in the waterfall chart (bar height 6439). Here the hight is ok (6493).


                In the last two column in the picture I have separated the offset expressions as follows:


                Column (if(rowno() = 2...) calculates like this: top(total Counter)


                Column (rangesum_1) as this: rangesum((top(total Counter,2,rowno(total))))


                Here I notice that the rangesum_1 column does not calculate correctly. It should calculate the values in the following order: 40, 77, 80, 117, ...  So the problem should be here.