条件测试示例

需要计算来评估数据相关性时,请在 Essbase 公式中使用条件测试。

例如,您可以将以下公式应用于多维数据集大纲中的佣金成员,以计算销售额大于 500000 时佣金占销售额的 1%:

IF(Sales > 500000)
   Commission = Sales * .01;
ENDIF;

如果将公式放置在计算脚本中,则必须将公式与委员会成员关联,如下所示:

Commission (IF(Sales > 500000)
   Commission = Sales * .01;
ENDIF;)

Essbase 循环处理多维数据集,执行以下计算:

  1. IF 语句将检查当前成员组合的 Sales 值是否大于 500000。

  2. 如果 Sales 大于 500000,则 Essbase 将 Sales 中的值乘以 0.01,并将结果置于 Commission 中。

在下一个示例中,公式测试当前成员的祖先,然后应用相应的薪资计算公式:

IF(@ISIDESC(East) OR @ISIDESC(West))
   Payroll = Sales * .15;
ELSEIF(@ISIDESC(Central))
   Payroll = Sales * .11;
ELSE
   Payroll = Sales * .10;
ENDIF;

如果将公式放在计算脚本中,则必须将公式与“薪资”成员关联,如下所示:

Payroll(IF(@ISIDESC(East) OR @ISIDESC(West))
   Payroll = Sales * .15;
ELSEIF(@ISIDESC(Central))
   Payroll = Sales * .11;
ELSE
   Payroll = Sales * .10;
ENDIF;)

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

  1. IF 语句使用 @ISIDESC 函数检查 Market 维上的当前成员是否为 East 或 West 的后代。

  2. 如果 Market 维上的当前成员是 East 或 West 的后代,则 Essbase 会将 Sales 中的值乘以 0.15,然后移至下一个成员组合。

  3. 如果当前成员不是 East 或 West 的后代,则 ELSEIF 语句将使用 @ISIDESC 函数检查当前成员是否是 Central 的后代。

  4. 如果 Market 维上的当前成员是 Central 的后代,则 Essbase 会将 Sales 中的值乘以 0.11 并移至下一个成员组合。

  5. 如果当前成员不是 East、West 或 Central 的后代,则 Essbase 会将 Sales 中的值乘以 0.10,并移至下一个成员组合。

另请参阅多维计算概念