@RELXRANGE

The @RELXRANGE calculation function for Essbase generates a cross-dimensional list for each cell in the predefined cross-dimensional list (XrangeList), based on the relative position of the cell that is currently being calculated and the offsets.

Syntax

@RELXRANGE (startOffset, endOffset, XrangeList)

Parameters

startOffset

Defines the first tuple in the cross dimensional list to be returned.

  • An integer value returns a cross-dimensional member relative to the current cell being calculated, in the predefined cross-dimensional list (XrangeList).

  • A negative value specifies a prior cross-dimensional member to the current cell being calculated, in XrangeList.

  • A value of 0 returns the cross-dimensional member or cell currently being calculated.

  • A positive value specifies a subsequent cross-dimensional member to the current cell being calculated, in XrangeList.

endOffset

Defines the last tuple in the cross-dimensional list to be returned. The value types are the same as for startOffset

XrangeList

A cross-dimensional list to be used as the limit.

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.

Notes

  • startOffset must be equal to or lesser than endOffset.

  • The order of dimensions in XrangeList drives the sequence of the tuples in the resulting tuples list. The right-most dimension in an XrangeList is the most frequently incremented dimension. The increment of members in a dimension goes in outline order, or in the order of the XrangeList used as an argument.

  • If the cell that is currently being calculated is out of the bounds of XrangeList, this function returns an empty cross-dimensional list.

  • If startOffset is out of the bounds of XrangeList, this function returns a cross-dimensional list starting from the first member of XrangeList.

  • If endOffset is out of the bounds of XrangeList, this function returns a cross-dimensional list ending on the last member of XrangeList.

  • Within XrangeList, in the parameter list for @XRANGE, you cannot pass members from the anchor dimension, meaning the dimension of the member on which the formula is set. See the Example for a correct way to use members from the anchor dimension.

Example

In the parameter list for @XRANGE, you cannot pass members from the anchor dimension. This example demonstrates a correct and an incorrect usage of @XRANGE.

Correct Example

mbrCount and Sales are both in the Measures dimension. Measures is the anchor dimension, meaning the dimension of the member on which the formula is set.

mbrCount=@COUNT(SKIPNONE,@RELXRANGE(-1,3,@XRANGE(Jan->Actual,May->Actual))->Sales);

The XrangeList is represented by @XRANGE(Jan->Actual,May->Actual), and returns the following:


Jan->Actual
Jan->Budget
Feb->Actual
Feb->Budget
Mar->Actual
Mar->Budget
Apr->Actual
Apr->Budget
May->Actual

@RELXRANGE operates on the XrangeList, returning lists of cross dimensional members within the defined offsets of -1 and 3.

If the current member being calculated is Jan->Actual, the count returned is 4 (offset of -1 is empty):


Jan->Actual (offset 0)
Jan->Budget (offset 1)
Feb->Actual (offset 2)
Feb->Budget (offset 3)

If the current member being calculated is Jan->Budget, the count returned is 5:


Jan->Actual (offset -1)
Jan->Budget (offset 0)
Feb->Actual (offset 1)
Feb->Budget (offset 2)
Mar->Actual (offset 3)

If the current member being calculated is Apr->Budget, the count returned is 3 (offsets of 2 and 3 are empty):


Apr->Actual (offset -1)
Apr->Budget (offset 0)
May->Actual (offset 1)

Incorrect Example

You cannot use Sales in the arguments for @XRANGE, because it is from the anchor dimension for mbrCount. Instead, reference a cross dimensional member with Sales and the @XRANGE function call, as shown in the correct example.

mbrCount=@COUNT(SKIPNONE,@RELXRANGE(0,0,@XRANGE(Sales->Jan->Actual,Sales->May->Actual)));