メインコンテンツにスキップ
Adaptive Planning
最終更新: 2023-06-23
参考: 数式関数

参考: 数式関数

数式の関数は、4 つのカテゴリ (数学、論理、文字列、日付) に分類されます。このトピックで各関数とその簡単な説明を定義します。
分かりやすくするために、テーブルの説明ではカンマ区切りを使用して数式を示します。ブラウザの設定によっては、セミコロンで区切る必要があります。構文列には両方のバージョンが表示されます。

数学関数

数学関数は、ボタンとして使用できます。たとえば、加算 (+)、減算 (-)、乗算 (*) などがあります。追加の選択オプションは
、"関数" > "数学"
から選択できます。

論理関数

対象イベントの一部に含める
If
ステートメントでは、基本的な論理関数、比較がボタンとして利用可能です。たとえば、論理積 (
AND
)、論理演算子 (
OR
)、および論理的否定 (
NOT
)。次の値と等しい比較 (
=
) ((
>
) (
<
)、または (
!=
)。(
<>
) ≠
追加の選択オプションは、
"関数" > "論理"
から選択できます。
構文
説明
Blank()
以下を返します。
Blank
値。この値は (ゼロではなく) 空白として表示されますが、数式の目的のためにはゼロと同一に評価されます。ゼロの場合とは異なり、次のようになります。
IsBlank()
返す関数
TRUE
がゼロと同様に、シートまたはレポートで "空の行を非表示にする" が有効な場合に非表示にすることができます。
Error ()
実行時の評価エラーの原因になります。
例:
IF(ACCT.EffectiveHeadcount < 0, Error(), ACCT.EffectiveHeadcount+ACCT.AddlHeadcount)
有効人員が 0 未満の場合は、根本的な問題を解決するためにエラーを返します。
If (EXPR, T, F)
If (EXPR; T; F)
数値 (
T
) if ブール式 (
EXPR
) が真の場合、それ以外の場合は数値 (
F
)。ブール演算子と比較演算子を使用して、ブール式を作成できます。
Iff (EXPR, T, F)
Iff (EXPR; T; F)
"高速" または短絡の形式の
If
関数。次と同じ値を返します
If
。ただし、条件が true の場合、関数の 3 番目の引数は評価されません。同様に、条件が偽の場合、2 番目の引数は評価されません。これは、2 番目または 3 番目の引数にエラーが含まれている可能性はあるが、結果は
Iff
エラーのある引数は評価されないため、有効なままです。
例:
  • IFF (this.Version.isActuals, ACCT.TravelExp, ACCT.Personnel.EstimatedTravel)
  • IFF (this.Qtr.PositionOf (this.Month) = 2, 100000, 0)
IsBlank (N)
引数が空白か空であった場合は真を、それ以外の場合は偽を返します。式の引数 (
EXPR
) に
If
関数。
例:
If(IsBlank(Row.StartDate),0,1)
Switch (Orig_EXPR, Case1, Case2, ..., Default)
Switch (Orig_EXPR; Case1; Case2; ...; Default)
複雑なネストされた式の代わりに使用できるコンパクトな式を作成する方法を提供します
If
ステートメント。
  • 最初の引数 (
    Orig_EXPR
    ) は最初に評価されるオリジナルの式 (
    制御式
    と呼ばれることもあります) です。
  • 後続の引数は次のとおりです。
    Cases
    (値および対応する式)。どのケースが元の式の値と一致するかに応じてアクティブ化されます。
  • 1 つ以上のケースを定義できます。各ケースは値 (
    N
    ) および式 (
    EXPR
    ) カンマで区切って入力してください。構文を展開すると、次のようになります。
    Switch (Orig_EXPR, N1, EXPR1, N2, EXPR2, ..., Default)
  • たとえば、オリジナルの式の値が で定義されている値と一致する場合、
    Case1
    に関連付けられた式
    Case1
    が返されます。ただし、オリジナルの式の値が一致する場合、
    Case2
    に関連付けられた式
    Case2
    が返され、以降同様です。
  • 一致する値がない場合、次のようになります。
    Switch
    を返します
    Default
    式。
  • すべての式 (
    EXPR
    )
    Switch
    ステートメントは、同じデータ タイプ (文字列、日付、番号など) である必要があります。式のデータ タイプに差異がある場合、次のエラーが表示されます。
    Inconsistent
    返品タイプの切替
  • 単一の値の代わりに (
    N
    ) それぞれのケースについて、
    Range(L,U)
    の値
    L
    は範囲の下限であり、
    U
    は範囲の上限です。たとえば、範囲に複数の年が含まれる場合があります。
    Range(2014,2017)
    元の式の値がこの範囲に収まる場合、その範囲に関連付けられた式がアクティブ化されます。
  • 範囲に対する各引数は、同じデータ タイプでなければなりません (たとえば、7 のような数字、次のような文字列定数)
    Engineering
    または既存の数式を使用して作成された日付定数
    Date()
    適切なデータ タイプに解決される関数または式 (
    this.Version.Name
    または
    ACCT.Rent
    )。
例:
  • Switch (ROW.DAY,1,"Sunday",2,"Monday",3,"Tuesday","No match")
    条件
    ROW.DAY
    が 2 の場合、月曜日は値 2 に対応する式であるため、次のようになります。
    Switch
    結果は月曜日です。
  • Switch (ToNumber (ROW.CaseQty), Range (0,11), 0, Range (12,24), 1, Range (24,48), 4, 0)
    この 2 番目の例では次の値が返されます。0、1、または4 (次の値の場合)
    CaseQty
    セレクター。

日付と時刻の関数

多くの場合、日付関数は、モデル シートの
"日付"
列と組み合わせて使用されます。日付関数は、モデル シートの算出科目でのみ表示されます。
日付関数は、"月" > "四半期" > "年" の設定を持つカレンダーに適用されます。異なる構造を使用しているカレンダーの場合、これらの関数の多くがエラーを返します。代わりに、this.version.positionOf(D.strata) の使用を検討してください。D を yyyy,mm,dd の形式のカレンダー日付に置き換え、層をカレンダーで使用する層に置き換えます。例: this.version.positionOf(2024,01,02.week) は、2024 年の最初の週を返します。
構文
説明
D.Month.NumberOfDays
その月の日数を返します
D
発生
.
D.Year.PositionOf(D.Month).
日付が指定されている会計年度の月を返します
D
発生します。
D.Year.PositionOf(D.Qtr)
会計年度の四半期を返します。
D
発生します。
(Date).
stratum_code
以下を返します。
Timeperiod
(単一、グレゴリオ暦) 日付を含む、リクエストされた層タイプの任意のデータを層コードのベースとして使用できます。
例:
ToDate
(2016,8,5).Qtr
2016 年 8 月 5 日が入った会計年度カレンダーの四半期を返します。
Day (D)
日付 (
D
)。
DaysInMonth (D)
日付 D がある月の日数を返します。カスタム カレンダーの場合、エラーまたは不正な値を返すことがあります。用途
D.Month.NumberOfDays
代わりに。
FiscalMonth (D)
日付 (
D
) が発生する。カスタム カレンダーの場合はエラーになることがあります。用途
D.Year.PositionOf(D.Month).
FiscalQuarter (D)
日付 (
D
) が発生する。カスタム カレンダーの場合はエラーになることがあります。用途
D.Year.PositionOf(D.Qtr).
FiscalYear (D)
日付 (
D
) が発生する。カスタム カレンダーの場合はエラーになることがあります。年と次を使用する数字と完全に一致する数字で年をコーディングしてみてください。
ToNumber
(D.Year.code).
Month (D)
日付 (
D
) が発生する。
Quarter (D)
日付が四半期である四半期を返します (
D
) が発生する。上記は、貴社の会計年度の四半期と同じでない場合もあります (以下を参照)。
this.Version.PositionOf(D.Month)
日付 D があるバージョン内の月 (最初の月 =
0
)。日付 D がバージョンの開始時点より前の場合は、この番号は負数である可能性があります。
this.Version.PositionOf(D.Year)
日付 D があるバージョン内の年 (最初の年 =
0
)。日付 D がバージョンの開始時点より前の場合は、この番号は負数である可能性があります。
TimeFraction (D1, D2, D, Dx)
TimeFraction (D1; D2; D; Dx)
開始日 (
D1
) と終了日 (
D2
)。任意の日付 (
D
) が指定されている場合は、次の月を使用します。
D
月の代わりに発生する。任意の固定日数パラメータ (
Dx
) が指定されている場合、の期間をオーバーライドします。
D
数値とともに。
カスタム カレンダーなしで設定されたインスタンスでは、以下を実行できます。
MonthFraction
の代わりに
TimeFraction
ToDate (Y, M, D)
ToDate (Y; M; D)
特定の年によって指定された日付を返します (
Y
)、月 (
M
)、日 (
D
)。条件
D
が省略されている場合、
15
使用されています。返された値は、日付を取る他の関数の引数として使用できます。
VersionMonth (D)
日付 (
D
) 発生 (最初の月 =
0
)。この数は負数である可能性があります。
D
) はバージョンの開始時点より前。
カスタム カレンダーの場合はエラーになることがあります。用途
this.Version.PositionOf(D.Month).
Version.PositionOf (timeperiod)
バージョンの全期間内で、指定された期間の相対的な順序を返します。バージョンにおいて最初の期間は 1 から始まります。期間がバージョンの開始時点より前であれば、順序番号は負数である可能性があります。この関数は、バージョンの終わりを超える期間に対しても機能します。
VersionYear (D)
日付 (
D
) が発生する (最初の年 =
0
)。この数は負数である可能性があります。
D
) はバージョンの開始時点より前。
カスタム カレンダーの場合はエラーになることがあります。用途
this.Version.PositionOf(D.Year)
Year (D)
日付 (
D
) は、カスタム カレンダーの使用の有無にかかわらず発生します。

文字列関数

構文
説明
Concat (text1, text2, ...)
Concat (text1; text2; ...)
複数のテキスト文字列を結合して、連結した文字列を返します。
例:
Concat ("hello", "world")
" を返す
helloworld"
Length (text)
テキスト文字列内の文字数を返します。
例:
Length ("Now, is the winter of our discontent. Made glorious summer by this son or York.")
返品
79
Search (source_text, search_text)
Search (source_text; search_text)
の開始位置を返します
search_text
source_text
。返品
0
条件
search_text
が見つかりません。Search では大文字と小文字は区別されません。
例:
Search ("Now is the winter of our discontent.", "Winter")
返品
12
Search ("Now is the winter of our discontent.", "Summer")
返品
0.
Substring (source_text, start_position, length)
Substring (source_text; start_position; length)
で見つかった文字を含むテキスト文字列を返します
source_text
開始
start_position
(position が
1
はテキスト文字列の最初の文字) であり、実行対象
length
(またはテキスト文字列の最後までの、どちらか先に検出された方)。
選択するアクション
start_position
0
以下の場合は、ポジションであるものとして扱われます
1
。次の桁数を選択:
0
以下の場合は、次の長さとして扱われます
0
空の文字列を返します。選択するアクション
start_position
は次の終了後です:
source_text
空の文字列を返します。
ToNumber (text)
数字を表すテキスト文字列を数値に変換します。文字列の先行部分を非数値文字の検出位置まで変換します。先頭文字が数値以外の場合、エラーになります。
例:
ToNumber ("7")
返品
7
ToNumber ("2017-12-31")
2017 (数値) を返します。
ToNumber ("Sample")
エラーを返します。

以下に、従業員モデル シートの人員数式を示します。これは、複数の関数をどのように組み合わせるかを示す好例です。この数式はバイナリ結果を返します。
1
または
0
If(this.Version.PositionOf(this.Month) >= this.Version.PositionOf(ROW.StartDate.Month) # if this month is after the person's start date and (isblank(ROW.EndDate) # and either they have no termination date or this.Version.PositionOf(this.Month) <= Version.PositionOf(ROW.EndDate.Month)), # or the current month is before termination date 1, # return 1 for their headcount in this month 0) # otherwise, return 0