Member Set Functions

Member set functions return a list of members. This list is based on the member specified and the function used. You can use operators to specify Generation and Level Range Operators for Member Set Functions with member set functions.

When a member set function is called as part of a formula, the list of members is generated before the calculation begins. The list never varies because it is based on the specified member and is independent of the current member.

If a member set function (for example, @CHILDREN or @SIBLINGS) is used to specify the list of members to calculate in a calculation script, Essbase bypasses the calculation of any Dynamic Calc or Dynamic Calc and Store members in the resulting list.

Only the @ATTRIBUTE and @WITHATTR functions can use attribute members or members of the Attribute Calculations dimension as parameters in member set functions.

You can use cross-dimension expressions such as ("1998":"2001" -> @Levmbrs (Year, 0)). The cross-dimensional operator is associative (x -> y) -> z=x -> (y -> z), but not commutative because x -> y = y -> x is a set, but the order of elements is different.

Table 2-8 Member Set Functions

Function Return Value
@ALLANCESTORS All ancestors of member, including ancestors of shared member.
@ANCEST Ancestor at distance from the current member or an explicitly specified member.
@ANCESTORS All ancestors of member, or those ancestors up to a specified distance.
@ATTRIBUTE All base members associated with attribute member name.
@BETWEEN All members whose name string value fall between, and are inclusive of, two specified string tokens.
@CHILDREN Children of member.
@CURRMBR Member currently being calculated in the specified dimension.
@DESCENDANTS All descendants of member, or those descendants down to a specified distance.
@EQUAL Member names that match the specified token name.
@EXPAND Expands a member search by calling a member set function for each member in a member list.
@GENMBRS Members of dimension that are at generation.
@IALLANCESTORS Member and ancestors of member, including ancestors of shared member.
@IANCESTORS Member, and either all member ancestors or those ancestors up to a specified distance.
@ICHILDREN Member and its children.
@IDESCENDANTS Member, and either all member descendants or those descendants down to a specified distance.
@ILANCESTORS Members of the specified list of members, and either all ancestors of the specified list of members or those ancestors up to a specified distance.
@ILDESCENDANTS Members of the specified list of members, and either all descendants of the specified list of members or those descendants down to a specified distance.
@ILSIBLINGS Member and its left siblings.
@INTERSECT Members that are at the intersection of two specified lists of members.
@IRSIBLINGS Member and its right siblings.
@IRDESCENDANTS Member and all its descendants, or those descendants down to a specified distance, including descendants of shared member.
@ISIBLINGS Member and its siblings.
@LANCESTORS All ancestors of the specified list of members, or those ancestors up to a specified distance.
@LDESCENDANTS All descendants of the specified list of members, or those descendants down to a specified distance.
@LEVMBRS Members of dimension that are at level.
@LIST A single list compiled from arguments, and can be used for functions requiring an expression list, a member list, or a range list.
@LSIBLINGS Left siblings of member.
@MATCH Members that match a pattern search performed over a generation, a level, or a member and its descendants.
@MBRCOMPARE Member names that match the comparison criteria.
@MBRPARENT Parent of the specified member.
@MEMBER Member with name string.
@MEMBERAT Member at the specified location in a list.
@MERGE Merged list from two lists.
@NEXTSIBLING Next, or right-most, sibling of member.
@NOTEQUAL Member names that do not match the specified token name.
@PARENT Parent of the current member being calculated in dimension, optionally crossed with another member.
@PREVSIBLING Previous, or left-most, sibling of member.
@RANGE Member list that crosses a member from one dimension with a range from another dimension.
@RDESCENDANTS All descendants of member, or those down to a specified distance, including descendants of shared member.
@RELATIVE All members that are at distance from member.
@REMOVE List1, with anything that is also in list2 removed.
@RSIBLINGS Right siblings of member.
@SHIFTSIBLING Sibling at specified distance from member.
@SIBLINGS Siblings of member.
@UDA Members of dimension that have UDA.
@WITHATTR Base members from dimension that are associated with an attribute meeting a condition.
@XRANGE Range of members between (and inclusive of) two members at the same level.

Generation and Level Range Operators for Member Set Functions

The operators : and :: can be used with member set functions, which return a list of members. The : operator returns level-based ranges and the :: operator returns generation-based ranges. For example, Jan:Dec and Jan::Dec both return all members between and inclusive of Jan and Dec.

The difference is that Jan:Dec returns all members at the same level and Jan::Dec returns all members at the same generation.

For example, if we have the outline:

  Q1 - Jan
       Feb
       Mar
  Q2 - Apr
       May
       Jun
  Q3
  Q4 - Oct 
       Nov
       Dec

The function @MOVAVG(Sales, 3, Jan:Dec) computes @MOVAVG(Sales, 3, Jan, Feb, Mar, Apr, May, Jun, Q3, Oct, Nov, Dec).

The function @MOVAVG(Sales, 3, Jan::Dec) computes @MOVAVG(Sales, 3, Jan, Feb, Mar, Apr, May, Jun, Oct, Nov, Dec).