IF
Formula内で条件テストを実行します。 IF文を使用して、ブール・テスト、およびテストがTRUEまたはFALSE値を返す場合に計算される式を定義できます。
構文
IF( condition ) statement ; [ ...statement ; ] [ ELSEIF...statement | ELSE...statement]
ENDIF;
ノート
-
IF、ELSEおよびELSEIF文でのENDIF文およびセミコロンの使用の詳細は、ENDIFを参照してください。
-
計算スクリプトでは、IF文をカッコで囲み、特定のデータベース・メンバーに関連付ける必要があります。 ENDIF文を使用してクローズする必要もあります。
-
@ATTRIBUTEおよび@WITHATTRを使用してIF文に属性を指定できます。次に例を示します:
IF (@ISMBR(@ATTRIBUTE(Can))) ...
。 属性関数を使用する必要があります。IF(@ISMBR(Can))
はサポートされません。
例
例 1
IF(
@ISMBR(@DESCENDANTS(Europe))
OR @ISMBR(@DESCENDANTS(Asia))
)
Taxes = "Gross Margin" * "Foreign Tax Rate";
ELSE
Taxes = "Gross Margin" * "Domestic Tax Rate";
ENDIF;
このテストでは、現在のセルにヨーロッパまたはアジアのメンバーの子孫であるメンバーが含まれているかどうかを確認します。 そうである場合、式は外国税率に基づいてメンバーの税金を計算します。 現在のセルにこれらのグループのいずれかのメンバーが含まれていない場合は、国内税率が税金計算に使用されます。
例 2
計算スクリプトでメンバー式の一部としてIF文を使用する場合は、次の両方のタスクを実行する必要があります:
-
IF文を単一のメンバーに関連付けます
-
IF文をカッコで囲みます
IF文の例を次の例に示します:
Profit
(IF (Sales > 100)
Profit = (Sales - COGS) * 2;
ELSE
Profit = (Sales - COGS) * 1.5;
ENDIF;)
Essbaseはデータベースを循環し、次の計算を実行します:
-
IF文は、現在のメンバーの組合せのSalesの値が100より大きいかどうかを確認します。
-
Salesが100より大きい場合、EssbaseはSalesの値からCOGSの値を減算し、その差に2を乗算して、その結果をProfitに格納します。
-
Salesが100以下の場合、EssbaseはSalesの値からCOGSの値を減算し、その差に1.5を乗算して、その結果をProfitに格納します。
IF ... ENDIF文全体がカッコで囲まれ、ProfitメンバーであるProfit (IF(...)...に関連付けられます。