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

数式構文

Adaptive 製品の数式は、算術などの関数を使用して組み合わせた単一または複数の用語で構成されています。用語は数値、科目の参照、または関数のいずれでも構いません。フォーミュラアシスタントは数式を作成する上で有用です。

 

標準シートキューブ シートのセル、またはセル値ボックスに数式を入力する際、数式は等号(=)で始める必要があります。他の場所で数式を入力する場合は等号を除外できます。

数式内のコメント

コメントは数式内で使用でき、#(ポンドまたはハッシュタグ記号)で始まります。例:

ACCT.Rent[time=this-12] # last year's rent(昨年の家賃)
* 1.5                   # 50% increase
(50%増)

数式での科目参照

  • 科目 - 科目の値を参照する際の構文は、ACCT.AccountCode です。キューブ科目とモデル科目では、科目コードに "ACCT.SheetAccountCodePrefix.AccountCode という形式でシート科目コードのプレフィックスが含まれている点に留意してください。"現在のセルの科目を解決する構文はACCTです。ACCT.this で、 数式がACCT.<this_acct_code> である場合に、同じ値であるかどうかを評価します。ACCT.this 構文を使用すると、同じ数式を持つ科目のセット間で、数式をコピーして貼り付けることができます。
     

  • 前提条件 - 前提条件を参照する際の構文は、ASSUM.AssumptionCode です。

  • ローカル - ローカル変数の値を参照する際は、LOCAL.LocalCode を使用します。

  • 為替レート - 一般的に、異なる通貨をロールアップする際にシステムが自動的に通貨金額を換算するため、数式で為替レートを使用する必要はありません。為替レートを直接参照する必要が生じた場合は、「"ExchangeRate.FromCurrencyCode.ToCurrencyCode.X"」というコードを持つ前提条件として指定できます。FromCurrencyCode はソース通貨の 3 桁のコード、ToCurrencyCode はターゲット通貨の 3 桁のコード、X は為替レートタイプの 1 桁のコードです(為替レートタイプが ["平均"] の場合は「"A"」など)。たとえば、平均的な月次レートを使用して米ドルと日本円の為替レートを参照する場合は ASSUM.ExchangeRate.USD.JPY.A を参照できます。

  • モデルシート - モデル算出科目を定義するために数式を書き込む場合は、モデルシート数式参照の場合と同様に追加科目および列の参照を利用できます。

数式の用語が別の科目を参照する場合は、その用語を含む数式が存在するのと同じ組織で同じ月の当該科目の値が自動的に取得されます。この月および組織の当該科目の金額が多くの分割で構成されている場合は、分割を合計して値を取得します。用語が参照する科目がモデル科目またはキューブ科目の場合は、現在の月および現在の組織におけるモデルシートのすべての行、あるいはキューブのすべての場所で値を合計します。

数式をキューブ シートのセルに書き込む際、他の科目の値を取得するのであれば、当該キューブ シート内の他の科目への参照では自動的にキューブ シート セルの現在の属性設定が使用されます。

この "相続" タイプの機能は、数式の科目参照に修飾子を適用すると変更できます。これにより、数式のあるセル以外の異なる月や組織、属性値を参照できるようになります。修飾子は、科目参照直後に配置されている大かっこ内で指定されます。コンマで修飾子を区切ると、複数の修飾子を単一の用語に適用できます。

  • 時間修飾子- 月、四半期、年などの値は数式で参照している科目または前提条件から取得されるもので、ユーザーはこれを変更できます。次に示すように、絶対月、相対月、四半期、年などを 数式構文で参照できます。

    • 月修飾子 - 科目を変更して特定の月からデータを取得するには、数式に "time=MM/YYYY" と指定します。ここで、「MM」は月の番号で「YYYY」は年です。"time=this+3" または "time=this-12" のような形式を使用すると、ある月を現在の月に関連付けて指定できます。"this" という特別な語句は現在の月を示します。ここから月を加算または減算すると、関連のある月を指定できます。また、修飾子ではオプションで月の範囲を指定することも可能です。この場合は、開始月と終了月を指定してコロンで区切ってください。たとえば、「"time=this-12:this-1"」または「"time=01/2010:12/2010"」のようになります。これにより当該範囲の科目の時間合計が計算され、その値が返されます。

    • 四半期修飾子 - 科目を変更して、特定の四半期からデータを取得するには、数式に "time=QN-YYYY" と指定します。ここで N は年度の四半期(1-4)を指し、YYYY は年を意味します。"time=this.qtr-1" または "time=this.qtr+4" のような形式を使用すると、ある四半期を現在の四半期を基に相対的に指定できます。"this.qtr" は現在の四半期の合計であり、これをもとに加算または減算することで、相対的な四半期を指定することができます。また、"time=this.qtr+1:this.qtr+5" や "time=Q1-2010:Q2-2011" のように、四半期の始めと終わりを指定し、2 つの値をコロンで区切ることで、修飾子を用いて四半期の範囲を指定することもできます。これにより当該四半期範囲の科目の時間合計が計算され、その値が返されます。時間構造が変更されると、四半期名が変更される場合があることに注意してください。

    • 年修飾子 - 科目を変更して特定の年からデータを取得するには、数式に "time=YYYY" と指定します。ここで、「YYYY」は年です。"time=this.year+1" または "time=this.year-2" のような形式を使用すると、ある年を当該年を基に相対的に指定できます。"this.year" は当該年の合計を示し、この年に加算または減算することで、相対的な年を指定できます。また、任意で、"time=this.year-3:this.year-1" または "time=2009:2011" のように、年の始めと終わりを指定し、2 つの値をコロンで区切ることで、修飾子を用いて年の範囲を指定することもできます。これにより当該年範囲の科目の時間合計が計算され、その値が返されます。

  • 組織修飾子 - 別の組織の科目の値を参照するには、"level=Level Name" という形式の修飾子を使用します。たとえば、IT 組織で費用を参照するのであれば、数式用語は ACCT.Expenses[level=IT] のようになります。注: 数式で参照している組織が、数式を入力する組織の子でない場合は、参照している科目のデータ プライバシー設定を調整して、このタイプのアクセスを許可する必要があります。これは、[科目] 画面で行われます。組織ではない前提条件を参照する場合、組織修飾子は無視される点に留意してください。

  • 組織計 - 組織修飾子を使って異なる組織で科目の値を参照する場合、システムは参照される組織とその下のすべての組織で当該科目の値を合計します。当該組織のみで科目の値を参照するには("組織の編集" モードなど)、数式用語の組織修飾子のすぐ後ろに "(-)" を追加します。たとえば、全社レベルで入力された科目のデータのみを指定して財務組織の数式に設定する場合、数式は次のようになります。ACCT.Headcount[level=Top Level(-)] 現在の組織で値を参照する場合は(組織修飾子は使わない)、デフォルトで当該組織のみの値が返されます。この組織およびすべての子組織の値を返すには、組織名のすぐ後ろに "(+)" を追加します。たとえば、全社組織ですべての組織の人数を含める数式を作成する場合、数式は次のようになります。=ACCT.Headcount[level=this(+)]

  • 属性/ 特性修飾子 - 科目の値で特定の属性値または特定の特性値に関連している部分を参照するには、"Dimension Name=Dimension Value" または "Attribute Name=Attribute Value" という修飾子を使ってください。単一の数式用語には属性修飾子または特性修飾子をいくつでも追加できますが、1 つの属性または特性には 1 つの修飾子、1 つの修飾子には 1 つの属性値しか許可されません。子値のある属性値を参照すると、当該属性値とその子すべてに関連した科目値が返されます。未分類、属性または属性値レベルのみの親に関連付けられた科目からデータを参照する場合は、数式で属性値参照のすぐ後に "(-)" を追加できます。たとえば、A、B、C、3 つの属性値を持つ Product という属性があり、そのいずれにも関連付けられていない未分類の科目値のみを含めるとすると、数式は次のようになります。ACCT.Revenue[Product=(-)]

    この例をさらに展開して、Product A には A-1 と A-2 という 2 つの従属属性値があるとします。たとえば、特に、Product A にタグ付けされていて、A-1 および A-2 のいずれにもタグ付けされていない科目の値を取得するには、数式は次のようになります。ACCT.Revenue[Product=A(-)]。

    特別な属性値 "this" ("Dimension Name=this" など)を使うと、科目用語でも数式のあるセルと同じ値を当該属性で使用するべきであると示唆できます。"this" を使用すると、キューブ シートまたはモデル シートでモデル科目の数式を作成する際にとりわけ便利です。「属性修飾子」で "this" を参照するとき、数式は現在のレベルに関連付けられている値のみ、つまり、未分類レベルに属す値のみを返します。親にロールアップする全属性のロールアップを取得することはありません。

数式では、標準的な数学演算子(+、かっこなど)のほかにも、さまざまな関数を利用できます。

数式用語

意味

ACCT.Expenses

数式と同じ月、同じ組織の費用科目の値。当該科目の子科目すべて(適宜)と分割すべてが合計されます。

ACCT.Revenue[time=this.year-1]

数式と同じ組織の収益科目の値は、数式の指定した年度より 1 年前の会計年の合計になります。当該科目の子科目すべて(適宜)と分割すべてが合計されます。

ASSUM.Rent[time=this-12:this-1]

過去 12 か月で合計した賃貸料前提条件の値。

ACCT.Personnel.Salary[Class=Level 4, time=1/2013]

数式と同じ組織で 2013 年 1 月の "従業員" というシート コードのモデルシート(またはキューブ シート)上の給与科目の値。"クラス" という属性の値が "レベル 4" の行、または "レベル 4" にロールアップする値のみが含まれます。

ACCT.PriceCube.Price[Client=this, Product=this]

数式のあるセルと同じ月、組織、「お客様と製品」の PriceCube キューブから得た価格科目の値。

ドット表記によるプロパティの参照

プログラミング言語で、オブジェクト参照を借りる"ドット表記"を使用することで、数式は、現在のセルの座標の詳細を参照し、さまざまな異なる型を返すことができます。

ドット表記は、現在の場所に基づいて数式を変えることができるため、IFF を使用した数式で特に便利です。たとえば、次のバージョン バリアント数式では、実際のバージョンとは異なるで計画バージョンでメトリックが計算されます。

IFF(this.Version.IsActuals, ACCT.ActualsValue, ACCT.PlanValue)  

オペランド

オペランド数式の構文は、標準化された "this" 項を使用して、セルの現在の位置を示します。

オペランド 説明

this.Version

バージョン オブジェクトを返します。次に、バージョン オブジェクトは、"this.Version.Name" などのより深いドット表記を使用して、バージョンのプロパティにアクセスできます。以下のオブジェクト タイプを参照してください。

this.Level

組織オブジェクトを返します。次に、組織オブジェクトは、より深いドット表記を使用して、組織のプロパティにアクセスできます。

this.Account

科目オブジェクトを返します。次に、科目オブジェクトは、より深いドット表記を使用して、科目のプロパティにアクセスできます。

this.<dimension_name>

名前の付いた属性で、現在のセルの属性値を表すオブジェクトを返します。名前の付いた属性で、現在のセルに値がない場合は、それを示すオブジェクトが返されます。このプロパティには、属性が、正当な識別子(数字以外の文字で始まり、文字、数字、下線のみで構成される)である名前を持つ場合にのみアクセスできます。非識別子の名前を持つ属性(名前に複数の単語を持つものなど)は、数式で、オペランドとして取得することはできません。

this.<attribute_name> 名前の付いた特性で、現在のセルの特性値を表すオブジェクトを返します。名前の付いた特性で、現在のセルに値がない場合は、それを示すオブジェクトが返されます。このプロパティには、特性が、正当な識別子(数字以外の文字で始まり、文字、数字、下線のみで構成される)である名前を持つ場合にのみアクセスできます。非識別子の名前を持つ特性(名前に複数の単語を持つものなど)は、数式で、オペランドとして取得することはできません。

this.<stratum_code>

要求された層の型の Timeperiod オブジェクトを返します。これには、現在のセルの時間座標が含まれます。要求された層が現在のセルよりも小さい場合(より細かい場合)、この関数は、現在のセルの時間枠で見つかった最初の Timeperiod を返します。

オブジェクト型

データ型は、オブジェクトを表し、"ドット表記法"を使って、それらのオブジェクト プロパティへのアクセスを可能にします。使用可能なオブジェクト プロパティは次のとおりです。

バージョン

プロパティ 説明

Version.Name

バージョンの名前を表す文字列を返します。実際のセルが計画バージョンにオーバーレイされている場合、実際のバージョンは、そのセルのバージョンと見なされます。

Version.ShortName

バージョンの短縮名を表す文字列を返します。

Version.Description

バージョンの説明を表す文字列を返します。

Version.Type

exportVersions API で、バージョンの型を表す文字列を返します。PLANNING、ACTUALS、VERSION_FOLDER、JOURNAL_ENTRY のいずれかを返します。

Version.StartDate

バージョンの開始となる、期間の最初の日を表す日付け値を返します。

Version.EndDate

バージョンの終了となる、期間の最後の日を表す日付け値を返します。

Version.positionOf

バージョンの全期間内の層で指定された期間の、0 から始まる相対的な順序を返します。期間がバージョンの開始より以前の場合は、負の数になることもありえます。この関数は、バージョンの終わりを超る期間で使用しても機能します。この場合でも、正しい相対的な順序を取得できます。

Version.isActuals

このバージョンが実際のバージョンかどうかを示すブール値を返します(これには、ACTUALS、SUBACTUALS、および JOURNAL_ENTRY 型が含まれます)。

Version.isGroup

このバージョンがバージョン グループであるかどうかを示すブール値を返します(データを含むバージョンではない)。

Version.isParent

このバージョンが子バージョンを持つかどうかを示すブール値を返します(連結でのみ使用可能)。

組織

プロパティ 説明

Level.Name

組織の名前を表す文字列を返します。

Level.ShortName

組織の短縮名を表す文字列を返します。

Level.inWorkflow

組織がワークフローに含まれているかどうかを表すブール値を返します。ワークフローが無効であるインスタンスの場合、すべてのレ組織は false を返します。

Level.isElimination

組織が相殺消去組織であるかどうかを表すブール値を返します。相殺消去機能がないインスタンスの場合、すべての組織は false を返します。

Level.isTradingPartner

組織が相殺消去の取引パートナー組織であるかどうかを表すブール値を返します。相殺消去機能がないインスタンスの場合、すべての組織は false を返します。

Level.Currency

組織の ISO 通貨コードを表す文字列を返します。

Level.Parent

組織に親がない(つまり、ルート レベルである)場合、この組織の親である組織オブジェクト、または特殊な "null" 組織オブジェクトを返します。

Level.isLeaf

組織がリーフ組織であるかどうかを示すブール値を返します(つまり、組織に子がない場合、このプロパティは true を返します)。

科目

プロパティ 説明
Account.Code 科目コードを表す文字列を返します。
Account.Name 科目の名前を表す文字列を返します。
Account.ShortName 科目の短縮名を表す文字列を返します。
Account.Description 科目の説明を表す文字列を返します。
Account.Parent 科目に親がない(つまり、ルート レベルである)場合、この科目の親である科目オブジェクト、または特殊な "null" 科目オブジェクトを返します。 
Account.<attribute_name> 科目の名前の付いた特性に割り当てられた値を表す、DimensionValue オブジェクトを返します。このプロパティには、特性が、正当な識別子(数字以外の文字で始まり、文字、数字、下線のみで構成される)である名前を持つ場合にのみアクセスできます。非識別子の名前を持つ特性(名前に複数の単語を持つものなど)は、数式で、オペランドとして取得することはできません。

属性と特性

プロパティ 説明
DimensionValue.Name 名前の付いた属性で、属性値の名前表す文字列を返します。
DimensionValue.ShortName 属性値の短縮名を表す文字列を返します。
DimensionValue.Description 属性値の説明を表す文字列を返します。
DimensionValue.Parent 属性内でこの値に親がない(つまり、その"親"が属性自身のルート レベルである)場合、この値の親である DimensionValue オブジェクト、または特殊な "null" 組織オブジェクトを返します。
DimensionValue.IsLeaf 名前の付いた属性の属性値が、その属性のリーフ値であるかどうかを示すブール値を返します。
DimensionValue.<attribute_name> 属性値に関連付けられた名前の付いた特性の特性値を表す、AttributeValue オブジェクトを返します。
AttributeValue.Name 名前の付いた属性で、特性値の名前表す文字列を返します。
AttributeValue.ShortName 特性値の短縮名を表す文字列を返します。
AttributeValue.Description 特性値の説明を表す文字列を返します。
AttributeValue.Parent 属性内でこの値に親がない(つまり、その"親"が属性自身のルート レベルである)場合、この値の親である AttributeValue オブジェクト、または特殊な "null" 値のオブジェクトを返します。
AttributeValue.IsLeaf 名前の付いた特性の特性値が、その特性のリーフ値であるかどうかを示すブール値を返します。

Timeperiod

期間は、構成されたカレンダー層の特定の期間を表します。 Timeperiod データ型は、他のデータ型と比較することはできません。期間と時間層の詳細については、柔軟な時間粒度 という記事を参照してください。

プロパティ 説明

Timeper.Code

期間のコードを返します。時間判別式で timeper を参照する方法と一致します。

Timeper.NumberOfDays

timeper オブジェクトの総日数を返します。

Timeper.Parent

現在の Timeperiod を含み、層連続で 1 つ高い (粗い) 層である Timeperiod オブジェクトを返します。より高い層がない場合は、現在の Timeperiod オブジェクトを返します。

Timeper.StartDate

Timeperiod の最初の日を表す Date オブジェクトを返します。Version.StartDate と同じ構文/意味です。

Timeper.EndDate

Timeperiod の最後の日を表す Date オブジェクトを返します。Version.EndDate と同じ構文/意味です。

Timeper.PositionOf(tp)

その層のほかのメンバー間のソース Timeperiod 内の Timeperiod tp の位置を表す 1 オリジンの整数を返します。tp が Timeperiod よりも小さい層でないか、timeper の境界内にない場合、この関数は 0 を返します。

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