次のスクリプトを考えてみましょう。SalesYTDは、Sample.Basic内のRatiosの子であるとします(「勘定科目」と「時間」は密です)。
SET UPDATECALC OFF;
"SalesYTD"(
IF(@ismbr("Jan"))
"SalesYTD" = "Sales";
Else
"SalesYTD"="Sales" + @prior("SalesYTD");
Endif)
この例では、データの12分の11がELSE条件を満たす一方で、IF条件を満たすのはデータの12分の1のみです。さらに、SalesYTDメンバーはセル・モードで計算されるため、アウトラインで最初に出現する1月は、IFの順序に関係なく、最初に計算されます。次の例に示すように、IF文でNOTを使用することによって、このスクリプトを最適化できます:
SET UPDATECALC OFF;
"SalesYTD"(
IF(NOT(@ismbr("Jan")))
"SalesYTD" = "Sales" + @prior("SalesYTD");
Else
"SalesYTD"="Sales";
Endif)