条件测试示例
需要计算来评估数据相关性时,请在 Essbase 公式中使用条件测试。
例如,您可以将以下公式应用于多维数据集大纲中的佣金成员,以计算销售额大于 500000 时佣金占销售额的 1%:
IF(Sales > 500000)
Commission = Sales * .01;
ENDIF;如果将公式放置在计算脚本中,则必须将公式与委员会成员关联,如下所示:
Commission (IF(Sales > 500000)
Commission = Sales * .01;
ENDIF;)Essbase 循环处理多维数据集,执行以下计算:
-
IF 语句将检查当前成员组合的 Sales 值是否大于 500000。
-
如果 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 会循环使用数据库,执行以下计算:
-
如果 Market 维上的当前成员是 East 或 West 的后代,则 Essbase 会将 Sales 中的值乘以 0.15,然后移至下一个成员组合。
-
如果当前成员不是 East 或 West 的后代,则 ELSEIF 语句将使用 @ISIDESC 函数检查当前成员是否是 Central 的后代。
-
如果 Market 维上的当前成员是 Central 的后代,则 Essbase 会将 Sales 中的值乘以 0.11 并移至下一个成员组合。
-
如果当前成员不是 East、West 或 Central 的后代,则 Essbase 会将 Sales 中的值乘以 0.10,并移至下一个成员组合。
另请参阅多维计算概念。