IF 문 사용

  • IF 문은 멤버 공식에서 사용할 수 있습니다. FIX는 사용할 수 없습니다.
  • 액세스할 블록 수를 줄이려면 IF 문을 FIX 문 내에서 사용해야 합니다. IF 문은 FIX 내의 모든 블록을 메모리로 가져옵니다.
  • 가능한 경우, 희소 차원에는 외부 FIX 문을 사용하고 밀집 차원에는 내부 IF 문을 사용합니다.
  • 가능한 경우, NOT 및 ELSEIF 조합이 아닌 ELSE를 사용하여 계산 중에 불필요한 멤버 값 분석을 피합니다. 필요하지 않은 경우 ELSE 문을 사용하지 마십시오.
  • 계산 멤버 블록 선택을 검토하여 동적 계산 종속성 없이 희소 멤버를 사용할 수 있는지 여부를 결정합니다.
  • 가능하면 가장 많은 수의 사례가 블록의 첫번째 IF에 적중되도록 IF 문의 순서를 지정합니다. 해당하는 경우 IF 안에 NOT을 사용하여 이를 보장합니다.

    다음 스크립트를 고려해 보십시오. 이 스크립트에서는 SalesYTDSample.Basic(계정시간이 밀집임)에 있는 Ratios의 1차 하위라고 가정합니다.

    SET UPDATECALC OFF;
    "SalesYTD"(
    IF(@ismbr("Jan"))
        "SalesYTD" = "Sales";
    Else
        "SalesYTD"="Sales" + @prior("SalesYTD");
    Endif)

    이 예에서는 12개 중 11개의 데이터가 ELSE 조건을 충족하고 12개 중 1개의 데이터만 IF 조건을 충족합니다. 또한, SalesYTD 멤버는 셀 모드에서 계산됩니다. 즉, 1월은 아웃라인의 첫번째에 표시되므로 IF 순서에 관계없이 첫번째로 계산됩니다. 다음 예에 표시된 것처럼 IF 문에 NOT을 사용하여 이 스크립트를 최적화할 수 있습니다.

    SET UPDATECALC OFF;
    "SalesYTD"(
    IF(NOT(@ismbr("Jan")))
        "SalesYTD" = "Sales" + @prior("SalesYTD");
    Else
        "SalesYTD"="Sales";
    Endif)