@MOVSUMX

The @MOVSUMX calculation function for Essbase applies a moving sum to the specified number of values in an input data set. @MOVSUMX modifies a data set for smoothing purposes.

Unlike @MOVSUM, @MOVSUMX allows you to specify the values assigned to trailing members. For example, if you specify three members of the Time dimension in the Sample Basic database, @MOVSUMX at Mar is the sum of the values for Jan, Feb, and Mar; @MOVSUMX at Apr is the sum of the values for Feb, Mar, and Apr. However, Jan and Feb have no @MOVSUMX value, and are called trailing members.

Syntax

@MOVSUMX (COPYFORWARD | TRAILMISSING | TRAILSUM, mbrName [,n[,Xrangelist]] )

Parameters

COPYFORWARD

Copies the input value into the trailing members. This behavior is the same as the @MOVSUM function.

TRAILMISSING

Sets the value of the trailing members to #MISSING.

TRAILSUM

Sums the trailing values.

mbrName

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

n

Optional. A positive integer value that represents the number of values that are used to calculate the moving maximum. The default is 3.

XrangeList

Optional. A valid member name, a comma-delimited list of member names, cross dimension members, or a member set function or range function (including @XRANGE) that returns a list of members from the same dimension. If XrangeList is not specified, Essbase uses the level 0 members from the dimension tagged as Time.

Notes

  • The @MOVSUMX function calculates a trailing, rather than a centered, sum. This example illustrates the difference:

     Trailing Sum           Centered Sum 
     1   2   3              1   2   3
             6                  6
  • While calculating the moving sum, @MOVSUMX skips #MISSING values. For example, if one value out of three is #MISSING, Essbase adds the remaining two values.

  • If you use a member set function to generate a member list for the XrangeList parameter (for example, @SIBLINGS), to ensure correct results, consider the order in which Essbase sorts the generated member list. For more information, see the help topic for the member set function that you are using.

  • When you use @MOVSUMX in a calculation script, use it within a FIX statement. Although FIX is not required, using it may improve calculation performance.

  • When you use @MOVSUMX across a large range in a sparse dimension, you may need to increase the size of the calculator cache.

Example

The following examples are based on the Sample Basic database. Assume that the Measures dimension contains an additional member, "Last 3 Months of Sales," and that the original Sales values are as shown.

Last 3 Months of Sales = @MOVSUMX (COPYFORWARD,Sales,3,Jan:Aug);

or:

Last 3 Months of Sales = @MOVSUMX (TRAILMISSING,Sales,3,Jan:Aug);

or:

Last 3 Months of Sales = @MOVSUMX (TRAILSUM,Sales,3,Jan:Aug);

These examples produce the following reports:

Sales

===========
Jan     100
Feb     150
Mar     200
Apr     250
May     300
Jun     350
Jul     400
Aug     450
Last 3 Months of Sales
COPYFORWARD
======================
          100
          150
          450
          600
          750
          900
         1050
         1200
Last 3 Months of Sales
TRAILMISSING
======================
          #MISSING
          #MISSING
          450
          600
          750
          900
         1050
         1200
Last 3 Months of Sales 
TRAILSUM
======================
          100
          250
          450
          600
          750
          900
         1050
         1200