@SHIFT

Returns either the prior or next nth cell value from mbrName, in the sequence XrangeList, retaining all other members identical to the current member.

The direction of @SHIFT is wholly based on n, with positive n values producing an effect equivalent to @NEXT and negative values of n producing an equivalent effect to @PRIOR.

Syntax

@SHIFT (mbrName [,n, XrangeList])
Parameter Description

mbrName

Any valid single member name or member combination, or a function that returns a single member or member combination.

n

Optional signed integer. Using a negative value for n has the same effect as using a positive value in the @PRIOR function. n must be a numeric value, not a reference, such as a member name.

XrangeList

Optional parameter specifying a sequential range of members. If a range is not specified, Essbase uses the level 0 members from the dimension tagged as Time.

Can be a valid member name, a comma-delimited list of member names, cross dimensional members, or a return value from a member set function or range function (including @XRANGE).

For more information about rangeList and XrangeList, see Range List Parameters in the topic Range and Financial Functions.

Notes

@SHIFT is provided as a more appropriate, self-documenting name than @NEXT or @PRIOR when the value for n is a variable and may change from positive to negative, depending on the database state when the call occurs (that is, when the usage is likely to be NEXT and/or PRIOR).

Example

In this example, Prev Asset for each month is derived by taking the Asset value from the previous month because -1 is specified as the n parameter. Next Avl Asset for each month is derived by taking the Asset value from two months following the current month because 2 is specified as the n parameter. Since the range sequence is not specified for either formula, the level 0 members from the dimension tagged as Time are used.

"Prev Asset" = @SHIFT(Asset,-1);
"Next Avl Asset" = @SHIFT(Asset,2);

This example produces the following report:

                 Jan    Feb    Mar    Apr    May    Jun
                 ===    ===    ===    ===    ===    ===                    
Asset            100    110    105    120    115    125
Prev Asset       #MI    100    110    105    120    115
Next Avl Asset   105    120    115    125    #MI    #MI

The following example assumes a Year dimension is added to Sample Basic.

FIX("West")
"Prev Sales" = @SHIFT(Sales, -1, @XRANGE("2011"->"Sep", "2012"->"Mar"));
ENDFIX;

The above calculation is performed across the following multidimensional range specified by XrangeList:

2011->Sep
2011->Oct
2011->Nov
2011->Dec
2012->Jan
2012->Feb
2012->Mar

See Also