條件式測試範例
當您需要計算來評估資料相依性時,請使用 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 並移至下一個成員組合。
另請參閱多維計算概念。