Above  chart function
Above() evaluates an expression at a row above the current row within a column segment in a table. The row for which it is calculated depends on the value of offset, if present, the default being the row directly above. For charts other than tables,
Syntax:
Above([TOTAL] expr [ , offset [,count]])
Return data type: dual
Arguments:
Argument  Description 


The expression or field containing the data to be measured. 

Specifying an Specifying an offset of 0 will evaluate the expression on the current row. Specifying a negative offset number makes the Above function work like the Below function with the corresponding positive offset number. 

By specifying a third argument count greater than 1, the function will return a range of count values, one for each of count table rows counting upwards from the original cell. In this form, the function can be used as an argument to any of the special range functions. Range functions 

If the table is onedimensional or if the qualifier TOTAL is used as argument, the current column segment is always equal to the entire column. 
On the first row of a column segment, a
Limitations:
Recursive calls will return
Examples and results:
Example 1:
Customer  Sum(Sales)  Above(Sum(Sales))  Sum(Sales) + Above(Sum(Sales))  Above offset 3  Higher? 

2566          
Astrida  587         
Betacab  539  587  1126     
Canutility  683  539  1222    Higher 
Divadip  757  683  1440  1344  Higher 
In the representation of the table chart shown in this example, the table is created from the dimension
The column
For the column labeled
The measure labeled
The table also shows more complex measures: one created from Sum(Sales)+Above(Sum(Sales)) and one labeled
Example 2:
In the representations of the table charts shown in this example, more dimensions have been added to the charts:
In the following representation of the table chart for Example 2, the lastsorted dimension is Month, so the Above function evaluates based on months. There is a series of results for each Product value for each month (Jan to Aug)  a column segment. This is followed by a series for the next column segment: for each Month for the next Product. There will be a column segment for each Customer value for each Product.
Customer  Product  Month  Sum(Sales)  Above(Sum(Sales)) 

2566    
Astrida  AA  Jan  46   
Astrida  AA  Feb  60  46 
Astrida  AA  Mar  70  60 
Astrida  AA  Apr  13  70 
Astrida  AA  May  78  13 
Astrida  AA  Jun  20  78 
Astrida  AA  Jul  45  20 
Astrida  AA  Aug  65  45 
Example 3:
In the representation of the table chart for Example 3, the last sorted dimension is Product. This is done by moving the dimension
Customer  Product  Month  Sum(Sales)  Above(Sum(Sales)) 

2566    
Astrida  AA  Jan  46   
Astrida  BB  Jan  46  46 
Astrida  AA  Feb  60   
Astrida  BB  Feb  60  60 
Astrida  AA  Mar  70   
Astrida  BB  Mar  70  70 
Astrida  AA  Apr  13   
Astrida  BB  Apr  13  13 
Example 4: 
Result  

The Above function can be used as input to the range functions. For example: RangeAvg (Above(Sum(Sales),1,3)). 

Data used in examples:
Monthnames:
LOAD * INLINE [
Month, Monthnumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];
Sales2013:
crosstable (Month, Sales) LOAD * inline [
CustomerJanFebMarAprMayJunJulAugSepOctNovDec
Astrida466070137820456578127822
Betacab655622791256452432785515
Canutility776834912468573644906727
Divadip573644906727576847908094
] (delimiter is '');
To get the months to sort in the correct order, when you create your charts, go to the Sort tab of the chart properties, and mark the checkbox Expression under Sort by. In the expression box write Monthnumber.