メインコンテンツまでスキップ
Adaptive Insights
Knowledge @ Adaptive Insights LLC, a Workday Company

数式の関数

数式では、算術関数や他の関数を利用します。フォーミュラ アシスタントは数式を構築する上で有用です(関数の使用を含みます)。

数式の演算子

演算子は、標準的な数学関数と論理関数の呼び出しに使われる記号です。Adaptive では以下の演算子が使えます:

数学演算子

  • +(加算)

  • -(減算)

  • -(単項演算子)

  • *(乗算)

  • /(除算。ただし推奨されません。代わりに DIVF() 関数を使用してください)

  • %(モジュロ)

  • ()(括弧に挿入)

論理演算子/式演算子

  • =(等しい)

  • !=(等しくない)

  • < (未満。日付の場合は"前")

  • > (超。日付の場合は"後")

  • <>(等しくない)

  • AND(2 つの条件の論理的な「AND」)

  • OR(2 つの条件の論理的な「OR」)

  • NOT(1 つの条件の論理的な「NOT」)

  • IF(2 つまたはそれ以上の条件の論理的な「IF」)

  • SWITCH(2 つまたはそれ以上の入れ子された条件の論理的な「IF」)

数式の関数

数式に含めることのできる関数には幾つかのタイプがあります。

数学

関数 説明

Div (N, D)

分子 N を分母 D で割り、商を返します。分母がゼロであれば、ゼロが返ります。

Divf (N, D)

Div と同じ値が返ります。これは「Div」よりも速い形式です。分母がゼロであれば、列挙子は評価されません。「Div」関数とは異なり、分母がゼロの場合、分子にエラーが含まれていても、この関数は常に有効です。「Div」では、分母がゼロでも分子が無効であれば、"無効を参照" エラーが報告されます。

Round(N)

数値 N を直近の正数に丸めます。

Trunc(N)

数値 N の小数点以下を切り捨てます。

Floor(N)

N 以下の最大の整数を返します (Floor(1.234) = 1)。

Ceil(N)

N 以上の最小の整数を返します (Ceil(1.234) = 2)。

Power(N, E)

数値 N を E 乗した値を返します。

Ln(N)

数値 N の自然対数を返します。

Greatest(N1, N2, ...)

数値リストの最大値を返します。

Least(N1, N2, ...)

数値リストの最小値を返します。

Spread445(N, M)

445 ルールに従って、M か月に指定スプレッドしたとき、数値 N の現在の月に属す部分を返します。M を省略すると 12 が使用されます。

Spread454(N, M)

454 ルールに従って、M か月に指定スプレッドしたとき、数値 N の現在の月に属す部分を返します。M を省略すると 12 が使用されます。

Spread544(N, M)

544 ルールに従って、M か月に指定スプレッドしたとき、数値 N の現在の月に属す部分を返します。M を省略すると 12 が使用されます。

NPV(discount_rate, value1, value2, ..., valueN)

一連のキャッシュフローの正味現在価値を返します。この関数では最初の現金支出報告は行いません(適宜)。この関数は、時間範囲の一連の値を示すために時間範囲月修飾子のある科目参照を受け入れます。たとえば、数値が NPV(0.1, ACCT.CF[time=this:this+11]) の場合、ACCT.CF 数式参照は、単一のロールアップ値ではなく 12 の異なる値として解釈されます。これは、
NPV(0.1, ACCT.CF[time=this], ACCT.CF[time=this+1], ..., ACCT.CF[time=this+12]) の入力に相当します。

IRR(value1, value2, ..., valueN, estimated_irr)

一連のキャッシュフローの内部収益率(IRR)を見積もります。この関数を実行する際は試行錯誤アルゴリズムを使用します。これは単一の期間(通常は最初の期間)に流出が起きる限り、正確です。他の一般的な IRR の実行と同じく、この関数も IRR の真の値に近づくために最高 20 回の反復を試みます。NPV 同様、この関数は、時間範囲の一連の値を示すために時間範囲月修飾子のある科目参照を受け入れます。単一の因数しか与えられていない場合は、この因数が時間範囲であると想定され、0.10 の想定 IRR 見積値が使用されます。

ABS(N)

数字 N の絶対値、符号なしの数字を返します。

SQRT(N)

数字 N の平方根を返します。

日付

日付を使う関数は Adaptive Planningのどの場所でも利用できますが、通常はモデル算出科目を作成する際にのみ有用です。この科目ではほとんどの場合、使用する日付が必要ですが、これはモデルシートの日付列でのみ、または、「ToDate」関数を使う場合にのみ利用できます。

関数 説明

ToDate(Y, M, D)

年 Y、月 M、日 D で指定した日付を返します。D を省略すると、15 が使用されます。返された値は日付を取る他の関数の引数として使用できます。

Date.stratum_code 単一のグレゴリオ暦の「日付」を含む、リクエストされた層タイプの「時間周期」オブジェクトを返します。例えば、四半期の時間層コードがQtrであると仮定すると、ToDate(2016,8,5).Qtrは2016年8月5日を含む会計年度四半期を返します。層コードでは大文字と小文字は区別されません。
Version.PositionOf(timeperiod) バージョンの全期間内の層で指定された期間の、0 から始まる相対的な順序を返します。期間がバージョンの開始より以前の場合は、負の数になることもありえます。この関数は、バージョンの終わりを超える期間で使用しても機能します。 

Day(D)

カスタムカレンダーの使用の有無にかかわらず、日付 D に対応する月の日を返します。

Month(D)

カスタムカレンダーの使用の有無にかかわらず、日付 D がある暦月(1〜12)を返します。

Quarter(D)

カスタムカレンダーの使用の有無にかかわらず、日付 D がある四半期を返します。

Year(D)

カスタムカレンダーの使用の有無にかかわらず、日付 D がある暦年を返します。

FiscalMonth(D)

日付 D がある会計年度の月を返します。カスタムカレンダーで設定されたインスタンスには、D.Year.PositionOf(D.Month) を使ってください。

FiscalQuarter(D)

日付 D がある会計年度の四半期を返します。カスタムカレンダーで設定されたインスタンスには、D.Year.PositionOf(D.Qtr) を使ってください。

FiscalYear(D)

日付 D がある会計年度の年を返します。カスタムカレンダーで設定されたインスタンスには、ToNumber(D.Year.Code) を使ってください。

VersionMonth(D)

現在のバージョンの N 番目の月に日付 D がある場合、日付 D の N-1 を返します。もし、D がバージョンの初日より以前の場合は負の数になることもありえます。カスタムカレンダーで設定されたインスタンスには、this.Version.PositionOf(D.Month) を使ってください。

VersionYear(D)

バージョンの N 番目の年に日付 D がある場合、日付 D の N-1 を返します。もし、D がバージョンの初日より以前の場合は負の数になることもありえます。カスタムカレンダーで設定されたインスタンスには、this.Version.PositionOf(D.Year) を使ってください。

DaysInMonth(D)

日付 D がある月の日数を返します。カスタムカレンダーで設定されたインスタンスには、D.Month.NumberOfDaysを使ってください。

MonthFraction(D1, D2, D)

開始日 D1 と終了日 D2 の間にある当月の部分を返します。オプションの日付 D が指定されている場合は、当月の代わりに、D のある月を使用します。 カスタムカレンダーで設定されたインスタンスには、TimeFraction(D1, D2, D) を使ってください。

論理

関数 説明

If(EXPR, T, F)

ブール値の式 EXPR が真の場合、数値 T を返し、偽の場合は数値 F を返します。ブール値と比較演算子を使用してブール値の式を作成することもできます。

Iff(EXPR, T, F)

If と同じ値を返します。これは if 関数を"速く"、または近回りで処理できる形式です。条件が真であれば、関数の 3 番目の因数は評価されません。同様に、条件が偽の場合、2 番目の引数は評価されません。これは 2 番目か 3 番目の引数がエラーを引き起こす可能性があるものの、特定の引数が評価されていなければその結果は依然有効であることを意味します。

IsBlank(N)

引数が空白か空であった場合は真を、それ以外の場合は偽を返します。この構文は、if 関数に対する式の引数にのみ使用できます。

Blank()

この値は(ゼロではなく)空白として表示されますが、数式の目的のためにはゼロと同一に評価されます。ゼロ値とは異なり、Blank() を因数とした IsBlank() 関数は真を返しますが、シートまたはレポートで"空の行を非表示にする"が有効な場合、ゼロ値と同様に非表示にすることができます。

Error()

エラーを返します。この用語を含むセルは赤の f(x) となり、このセルを参照するすべてのセルは「"無効を参照"」エラーを含みます。一般的には、入れ子の IF の規定値として使われます。

SWITCH(<orig_expression>, <val_or_range1>, <expr1>, <val_or_range2>, <expr2>, ..., <default_expr>)

SWITCH は、複雑な入れ子 IF ステートメントの代わりに使えるコンパクトな式を書くのに有用です。

  • orig_expression
整数、文字列、または日付データタイプに評価される式です。オブジェクト データタイプに解決される式は、この位置では使えません。「"無効な SWITCH のタイプ"」エラーとなります。一定値(例: "7")や「数式の構文」で説明のあった演算子(例: "this.Version.Name")などの有効な非オブジェクトタイプに解決される式は、ここで使うことができます。
  • val_or_range n
orig_expressionの後には、値と式のペアの一連が来ます。各ペアの val_or_range の部分は、orig_expression と同じデータタイプの単一の値または Range()  関数 (下記参照)を使った範囲式で構成されます。範囲関数の各引数には、当該データタイプの定数(例: 7のような数字、「"エンジニアリング"」のような文字列定数または既存の Date() 関数を使って構築された日付定数)または適切なデータタイプに解決される式(例: this.Version.Name または ACCT.Rent)が使えます。
  • expr n
各ペアの二番目の部分は、orig_expression が値にマッチする(あるいは val_or_range の範囲内に収まる)場合は、この関数の結果の式です。SWITCH ステートメントの expr 部分はすべて、同一のデータタイプでなければなりません。1つ以上の expr が異なるデータタイプの場合は、「"一貫性のない SWITCH 戻りタイプ"」エラーとなります。
  • default_expr
SWITCH 関数の最後の引数は、範囲または値がどれも orig_expression にマッチしない場合に返される既定値(または既定式)です。この引数は SWITCH に必須で、ペアの expr 部分と同一のデータタイプでなければなりません(そうでない場合は「"一貫性のない SWITCH 戻りタイプ"」エラーとなります)。この因数がない場合は、「"SWITCH ステートメントの既定戻り値の欠損"」というエラーが発生します。各 SWITCH には、最低1つの値と式のペアが必要です。そうでない場合は「"無効な SWITCH 構文"」エラーが発生します。

SWITCH 関数は、返す式のみを評価し、他の式は評価しないという点において、IFF 関数と同様に動作します。

範囲

単項定数に加え、val_or_range は、可能な値の範囲として Range() 関数を呼び出す場合もあります。Range() 関数は、下限と上限の2つの引数を取ります。どちらの引数も、SWITCH の  orirg_expression と同一のデータタイプでなければなりません。Range()orig_expression が下限以上、上限以下の場合、SWITCH 選択の目的にマッチします。上限が下限未満の場合は Range はどの値にもマッチせず、対応する SWITCH ブランチは使用されません。

Range() 関数にはちょうど2つの引数が必要です。それより多くても少なくてもいけません。Range() 関数は、SWITCH 関数内でのみ使用できます。

文字列

関数 説明

ToNumber(text)

数字を表すテキスト文字列を数値に変換します。

Length(text)

テキスト文字列内の文字数を返します。

Search(source_string, search_string)

source_string 内の search_string の開始位置を示す数字を返します。search_string が source_string 内に存在しない場合は、0を返します。検索では大文字と小文字が区別されません。

SubString(source_text, start_position, length)

source_text 内の start_position (位置 1 はテキスト文字列の最初の文字) からその長さ (またはテキスト文字列の最後までのどちらか短い方) の文字を含むテキスト文字列が返されます。start_position に 0 以下の値を選択した場合、位置 1 と同様に処理されます。長さに 0 以下の値を選択した場合、長さ 0 として処理され、空の文字列が返されます。source_text の最後より後の start_position を選択した場合、空の文字列が返されます。

Concat(text1, text2, ...)

2 つ以上のテキスト文字列を結合して、連結した文字列を返します。

 

数式の詳細な情報については、以下を参照してください。

数式
数式構文
モデル シート数式
フォーミュラアシスタント
数式バー

  • この記事は役に立ちましたか?