機械翻訳について

IF

Formula内で条件テストを実行します。 IF文を使用して、ブール・テスト、およびテストがTRUEまたはFALSE値を返す場合に計算される式を定義できます。

構文

IF( condition ) statement ; [ ...statement ; ] [ ELSEIF...statement | ELSE...statement]
  ENDIF;

パラメータ

condition

TRUE (ゼロ以外の値)またはFALSE (ゼロ値)のブール値を返す式または関数。

statement

テストの結果に応じて実行される操作。

ノート

  • IF文ブロックでは、デシジョン構文の一部としてELSE文およびELSEIF文を使用することもできます。

  • 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はデータベースを循環し、次の計算を実行します:

  1. IF文は、現在のメンバーの組合せのSalesの値が100より大きいかどうかを確認します。

  2. Salesが100より大きい場合、EssbaseはSalesの値からCOGSの値を減算し、その差に2を乗算して、その結果をProfitに格納します。

  3. Salesが100以下の場合、EssbaseはSalesの値からCOGSの値を減算し、その差に1.5を乗算して、その結果をProfitに格納します。

IF ... ENDIF文全体がカッコで囲まれ、ProfitメンバーであるProfit (IF(...)...に関連付けられます。

関連項目