与值相关的函数
您可以在大纲公式中使用 Essbase 值函数来计算相互依赖度量的方程式,例如时段内的库存、费用报告中使用的差异以及分配。
以下主题讨论与值相关的公式的使用。
相互依赖的值
有时,要计算所需结果,需要使用 Essbase 公式将相互依赖的多个方程式应用于大纲中的一个成员。
Essbase 通过同时计算同一维中某个成员范围的公式来优化计算性能。但是,某些公式需要来自同一维的成员的值,而 Essbase 可能尚未计算所需的值。
一个很好的例子是现金流,其中期初库存取决于上个月的期末库存。
“期初库存”和“期末库存”的值必须按月计算。假设您要获得的结果如下所示:
表 17-11 现金流数据值示例
| Jan | Feb | 三月 | |
|---|---|---|---|
|
期初库存 |
100 |
120 |
110 |
|
销售 |
50 |
70 |
100 |
|
加 |
70 |
60 |
150 |
|
期末库存 |
120 |
110 |
160 |
假设一月份的期初库存值加载到多维数据集,则需要进行以下计算才能在上面的网格中获得结果:
1. January Ending = January Opening – Sales + Additions
2. February Opening = January Ending
3. February Ending = February Opening – Sales + Additions
4. March Opening = February Ending
5. March Ending = March Opening – Sales + Additions可以通过将相互依赖的多个方程式应用于大纲中的一个成员来计算所需结果。
以下公式应用于大纲中的“期初库存”成员,计算正确的值:
IF(NOT @ISMBR (Jan))
"Opening Inventory" = @PRIOR("Ending Inventory");
ENDIF;
"Ending Inventory" = "Opening Inventory" - Sales + Additions;如果将公式放置在计算脚本中,则必须将公式与“期初库存”成员关联,如下所示:
"Opening Inventory"
(IF(NOT @ISMBR (Jan))
"Opening Inventory" = @PRIOR("Ending Inventory");
ENDIF;)
"Ending Inventory" = "Opening Inventory" - Sales + Additions;Essbase 周期为数月,执行以下计算:
-
IF 语句和 @ISMBR 函数检查“年份”维上的当前成员不是“一月”。此步骤是必需的,因为“一月”的“期初库存”值是一个输入值。
-
如果当月不是 1 月,则 @PRIOR 函数将获取上个月期末库存的值。然后将此值分配给本月的期初库存。
-
将计算本月的期末库存。
注意:
要计算正确结果,必须将上述公式放在一个成员“期初库存”上。如果将“打开库存”和“结束库存”的公式放置在其单独的成员上,则 Essbase 会计算所有月份的“打开库存”,然后计算所有月份的“结束库存”。此组织表示在计算“期初库存”时,上个月期末库存的值不可用。
实际值与预算值之间的差异
使用 @VAR 和 @VARPER 计算函数可以计算预算值与实际值之间的差异或百分比差异。
考虑费用与非费用会计对差异计算的影响:
-
费用项目。如果实际值小于预算值(例如,如果实际成本小于预算成本),则希望 Essbase 显示正差异。
-
非费用项目。如果实际值小于预算值(例如,如果实际销售额小于预算销售额),则希望 Essbase 显示负差异。
默认情况下,在不使用函数的情况下, Essbase 会假定成员是非费用项,并相应地计算差异。
使用 @VAR 或 @VARPER 函数时,如果实际值小于预算值,则 Essbase 将显示正差异。例如,在 Sample.Basic 中,“总费用”的子项是费用项。方案维的“差异”和“差异百分比”成员计算“实际”值与“预算”值之间的差异。
图 17-3 差异示例
