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

モデル シート数式

管理者がモデルシートで標準数式構文に加えて算出科目の数式を作成すると、モデルシート内で利用できる用語と関数が追加されます。 

一般的に現在の行で値を参照する場合は、参照する項目のコードの前に ROW. というプレフィックスを使います。現在の行に関係のない値を参照する場合は(モデル外の値、またはモデル行の集合を示す値、あるいはすべての行の前提条件)、ACCT. または ASSUM. というプレフィックスを使います。 

モデルの列の参照

算出科目の数式は、モデル シートのどの列でも参照できます(関連する科目のない列も含まれます)。すべての行には独自のコードがあり、数式の項で ROW. というプレフィックスを使うとアクセスできます。列は、その列のタイプの値を返します(数値列は数値、日付列は日付、ストリング列はストリングを返します)。属性列は、行で現在選択されている属性値のストリングを返します。

数値列は、数値が受け入れられる場所であればどこの数式でも使用できます。ストリングと日付は、IF 関数条件でのみ使用でき、他のストリングや日付に比較できます。

モデル シートでフィルターされた行のサブセットを参照する科目を作成する際、行がフィルター条件に一致する場合、あるいはゼロであれば、IF を使用して値を返すことができます。以下の例を参照してください。

モデル前提条件とルックアップ テーブルの参照

  • モデル内で定義された前提条件を参照するには、ASSUM.SheetGroupName.AssumptionCode という構文を使って前提条件を参照してください。「SheetGroupName」はシート上の科目すべてのプレフィックスとして与えられているコードです。

  • モデル外で前提条件を参照するには、モデル外と同じ構文 ASSUM.AssumptionCode を使用してください。

  • ルックアップ テーブルで値を参照するには、ルックアップ テーブル名 ROW.LookupTableName を使用します。これにより、行で現在選択されている属性に関連し、名前が付けられたルックアップ テーブルの行に対する現在の月の値が返されます。

他の科目の参照

  • モデル シート外の科目を参照するには、「数式の構文」で説明されている標準的な構文を使用してください。

  • 現在の行で別のモデル科目の値を参照するには、当該モデル科目のコードの前に ROW. というプレフィックスを付けます。

  • 現在の組織で行全体の算出科目の合計値を参照するには、

  • 多次元ルックアップ テーブルとして使用されているキューブ シートで値を参照するには、 ACCT.CubeGroupName.AccountCode[DimensionName=this] を使用できます。モデルシートとキューブ シートの双方に属性「DimensionName」がある場合、キューブ シートから引き出されるデータは、モデルシートの各行で選択した属性によって異なります。

特別な関数

数式の関数」ページで説明されているように、日付関数の多くは通常、モデル計算科目の作成時にのみ適用されます。このような関数を利用できるのは、日付列から引き出される日付(ROW.column_code を使用)、特別な ToDate 関数、または特別なキーワード「this」(評価している数式の月の最初の日を返します)のみです。2016 年 1 月のモデル科目の値を計算する際、"this" を使うと 2016 年 1月 1 日という日付が返されます。

モデル科目の数式

意味

ROW.Price

このモデル シートの "価格" 列が数値の場合は、その値を返します。各月に対して同じ数値を返します。「価格」列では、異なる月に対して異なる値がありません。

ROW.Price * ASSUM.Global_Inflation

モデル シート上の数値の "価格" 列を "Global_Inflation" というコードのグローバル前提条件で乗じたものです。これにより毎月、異なる数値が返されます。「価格」列には値が 1 つだけ入り、月が変わっても数値は変わりませんが、この前提条件では各月の値が異なります。

VersionMonth(this) - VersionMonth(ROW.Hire_Date)

現在の月(当該モデル科目を参照している月)と [Hire_Date] フィールドの日付の間の月の数。[Hire_Date] で現在の月よりも後の日付を指定すると、負の数になります。「VersionMonth()」の代わりに「Month()」を使うことは適正ではない点に留意してください。「Month()」関数では常に 1~12 の間の数値が返されるためです。

IF (ROW.Region="East" AND ROW.Product="Product A", ROW.Revenue, 0)

同時に地域 "East" と製品 "Product A" に対する行の収入です。

IF (ROW.Hire_Date > ToDate(2010,1,15), 0.20 * ROW.AnnualSalary, 0.10 * ROW.AnnualSalary)

「Hire_Date」が含まれている 2010 年 1 月 15 日よりもの行では、行の「AnnualSalary」値の 20%が返されます。その他の場合は「AnnualSalary」の 10% が返されます。

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

同じ月と組織のキューブ「"PriceCube"」からの「価格」科目の値です。モデル シートの各行で指定されているように「Client」と「Product」が使用されます。

 

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