在多个维之间分配值

Essbase 计算脚本示例使用 @MDALLOCATE 函数为三个维的预算总费用分配加载值。预算总费用是根据上一年的实际值分配的。

假设您进行了以下更改:

  • 已将子项 PY Actual 添加到方案维

  • 将数据从实际复制到 PY 实际

  • 已从预算中清除数据

在此示例中,必须将值 750(对于“预算”->“总费用”->“产品”->“东部”->“一月”)分配给东部各州的产品 100 子项的每个费用类别。分配使用 PY Actual 中的值来确定每个类别应接收的百分比份额。

示例脚本:

/* Allocate budgeted total expenses based on prior year, across 3 dimensions */

SET UPDATECALC OFF;
FIX (East, "100", "Total Expenses")
   BUDGET = @MDALLOCATE(750,3,@CHILDREN("100"),@CHILDREN("Total Expenses"),@CHILDREN(East),"PY Actual",,share);
ENDFIX

PY 实际值:

         Jan 
         PY Actual
                         Marketing    Payroll   Misc   Total Expenses
100–10   New York        94           51        0      145
         Massachusetts   23           31        1      55
         Florida         27           31        0      58
         Connecticut     40           31        0      71
         New Hampshire   15           31        1      47
100-20   New York        199          175       2      376
         Massachusetts   #MI          #MI       #MI    #MI
         Florida         #MI          #MI       #MI    #MI
         Connecticut     26           23        0      49
         New Hampshire   #MI          #MI       #MI    #MI
100-30   New York        #MI          #MI       #MI    #MI
         Massachusetts   26           23        0      49
         Florida         #MI          #MI       #MI    #MI
         Connecticut     #MI          #MI       #MI    #MI
         New Hampshire   #MI          #MI       #MI    #MI
100      New York        #MI          #MI       #MI    #MI
         Massachusetts   12           22        1      35
         Florida         12           22        1      35
         Connecticut     94           51        0      145
         New Hampshire   23           31        1      55 
         East            237          220       3      460

Essbase 会循环使用数据库,执行以下计算:

  1. 修复了东部、100 个子女和总费用。

    将 FIX 语句与 @MDALLOCATE 一起使用可以提高计算性能。

  2. 在执行分配之前,使用 PY Actual 中每个费用类别的份额,确定每个产品 - 状态组合应接收的 750 份额(要分配的值)。从 "PY Actual" -> "100-10" -> "New York" 开始, Essbase 将第一个费用类别 "Marketing" 的值除以 "PY Actual" -> "100-10" -> "East" -> "Total Expenses" 的值,以计算该类别的百分比份额。

    例如, Essbase 将 PY Actual -> 100-10 -> New York -> Marketing (94) 的值除以 PY Actual -> 100-10 -> East -> Total Expenses (460) 的值,这会为 Marketing 类别产生大约 20.4% 的百分比份额。

  3. 对每个产品状态组合的每个费用类别重复步骤 2。

  4. 在分配期间, Essbase 使用在步骤 2 和步骤 3 中计算的百分比份额来确定应将 750 的份额分配给每个产品状态组合的“总预算费用”的每个子项。

    例如,对于 Marketing, Essbase 使用步骤 2 中计算的 20.4% 的数字,占 750 的 20.4%(大约 153),并将分配的值放置在“预算”>“100-10”>“纽约”>“营销”中(请参阅此过程后面的结果)。

  5. 使用在步骤 2 和步骤 3 中计算的 PY 实际百分比份额,对每个费用类别和每个产品状态组合重复步骤 4。

  6. 合并费用类别以生成“总费用”的值。

预算的分配结果:

         Jan 
         Budget
                         Marketing    Payroll   Misc   Total Expenses
100–10   New York        153.26       83.15     0      236.41
         Massachusetts   37.50        50.54     1.63   89.67
         Florida         44.02        50.54     0      94.56
         Connecticut     65.22        50.54     0      115.76
         New Hampshire   24.26        50.54     1.63   76.63
100-20   New York        #MI          #MI       #MI    #MI
         Massachusetts   #MI          #MI       #MI    #MI
         Florida         42.39        37.50     0      79.89
         Connecticut     #MI          #MI       #MI    #MI
         New Hampshire   #MI          #MI       #MI    #MI
100-30   New York        #MI          #MI       #MI    #MI
         Massachusetts   #MI          #MI       #MI    #MI
         Florida         #MI          #MI       #MI    #MI
         Connecticut     #MI          #MI       #MI    #MI
         New Hampshire   19.57        35.87     1.63   57.07
100      New York        153.26       83.15     0      236.41
         Massachusetts   37.50        50.54     1.63   89.67
         Florida         86.41        88.04     0      174.46
         Connecticut     65.22        50.54     0      115.76
         New Hampshire   44.02        86.41     3.26   133.70
         East            386.41       358.70    4.89   750