TIMESUM 関数は二つの時間軸間の値を集計し、一つの値を返します。

たとえば、TIMESUM 関数を使用して、これまでの期間から現在の期間までの収益を集計できます。

TIMESUM(Line item to aggregate [, Start period] [, End period] [, Aggregation method])

引数データ型説明
Line item to aggregate (必須)数値、ブール値、日付、リスト、又はテキスト

一定期間にわたって集計する参照値。

この引数はライン アイテムにする必要があり、このライン アイテムにはディメンションとして時間が必要です。

Start period数値、日付、時間軸

集計を開始する値。この期間は集計に含まれます。

この引数を省略すると、計算では時間軸の全範囲が考慮されます。

End period

数値、日付、時間軸

Start period のデータ型をミラーリング

集計を終了する値。

この引数を省略すると、デフォルトで Start period と同じ値になります。

Aggregation methodキーワード

使用する集計方法。

使用可能なキーワードは SUMAVERAGEMINMAXANYALLFIRSTNONBLANKLASTNONBLANKTEXTLISTSTDEVSSTDEVPVARSVARP です。 

以下の「Aggregation method のキーワード」のセクションにはさらに詳しい情報があります。

TIMESUM 関数では、Line item to aggregate 引数のデータ型に一致する値を返します。

キーワードデータ型目的
SUM数値入力値を追加
AVERAGE数値入力値の平均を計算
MIN数値、日付、時間軸最小入力値を特定
MAX数値、日付、時間軸最大入力値を特定
ANYブール値TRUE である入力値が少なくとも一つあるかどうかを確認して、ある場合は TRUE を返す
ALLブール値すべての入力値が TRUE であるかどうかを確認し、その場合のみ TRUE を返す
FIRSTNONBLANK日付、リスト、テキスト、時間軸最初の空白でない入力値を返す
LASTNONBLANK日付、リスト、テキスト、時間軸最後の空白でない入力値を返す
TEXTLISTText入力値を「,」区切りで連結して単一のテキスト値を作成
STDEVS数値、日付、リスト、時間軸入力値の標本標準偏差を返します。
STDEVP数値、日付、リスト、時間軸入力値の母標準偏差を返します。
VARS数値、日付、リスト、時間軸入力値の標本分散を返します。
VARP数値、日付、リスト、時間軸入力値の母分散を返します。

Aggregation method 引数を省略した場合、デフォルトの動作は Line item to aggregate 引数のデータ型によって異なります。

  • Line item to aggregate のデータ型が数値の場合、デフォルトの方法は SUM です。
  • Line item to aggregate のデータ型がブール値の場合、デフォルトの方法は ANY です。
  • Line item to aggregate のデータ型が日付、リスト、又はテキストの場合、デフォルトの方法は FIRSTNONBLANK です。

Polaris:

  • Line item to aggregate 引数にはタイプとして数値かブール値しか使用できません。 
  • Start period 引数に値を指定して End period 引数に値を指定しなかった場合、TIMESUM 関数では Start period 引数で指定した開始期間から該当する時間範囲の終了までのすべての値が集計されます。
  • Start period 引数と End period 引数に日付値を使用した場合は想定通りに動作します。
  • Start periodEnd period が時間ディメンションの範囲外の場合、TIMESUM は 0 を返します。

Classic エンジン:

  • Line item to aggregate 引数にはデータ型が数値、ブール値、日付、リスト、又はテキストの値を使用できます。
  • Start period 引数に値を指定して End period 引数に値を指定しなかった場合、TIMESUM 関数では Start period の値が返されます。
  • Start period 引数と End period 引数に日付値を使用した場合は想定とは逆に動作します。つまり、Start period は集計が終了する期間内の日付になり、End period は集計が始まる期間内の日付になります。

TIMESUM(Revenue, -2, 0, SUM)

この式では、現在の期間の二つ前の期間から現在の期間までの「Revenue」ライン アイテムの値を合計しています。これには開始期間と終了期間が含まれます。

Aggregation method 引数を省略した場合に使用されるデフォルトの集計方法は、Line item to aggregate 引数のデータ型によって異なります。Line item to aggregate 引数の各データ型で使用されるデフォルトの集計方法は次のとおりです。

  • 数値の場合のデフォルトの動作は SUM です。
  • ブール値の場合のデフォルトの動作は ANY です。
  • 日付、リスト、又はテキスト。デフォルトの動作は FIRSTNONBLANK です。

入力がどのように関数に渡されるかに関わらず、TIMESUM では時間ディメンションの二つの期間の間の値が集計されます。

  • TIMESUM (lineItem) のように引数が一つだけの場合、デフォルトで開始期間がディメンションの最初の期間となり、時間ディメンション全体の値が集計されます。終了期間はデフォルトでディメンションの最後の期間になります。
  • TIMESUM(lineItem, 1, 3) のように数値の引数を使用した場合、これらの数値は現在の期間からのオフセットを表すため、この例では開始期間が 'Current Period' + 1、終了期間が 'Current Period' + 3 となります。

TIMESUM 関数の Start period 引数と End period 引数では値を集計する期間を定義します。TIMESUM 関数は値を一つ (この定義した期間範囲における集計値) だけ返します。そのため、モジュールのパフォーマンスを最適化するには、時間ディメンションを使用せず、ライン アイテムで TIMESUM を使用することをおすすめします。

Start period 引数と End period 引数はデータ型の値が数値、日付、又は時間軸の場合に使用します。引数ごとに異なるデータ型を使用できます。

たとえば、Start period 引数に時間軸を指定して、End period 引数に 0 (ゼロ) を指定できます。こうすることで、指定した時間軸から現在の期間までの値が集計され、現在の期間が変化すると自動的に更新されます。

  • Line item to aggregate 引数にはディメンションとして時間が必要です。
  • Start period 引数か End period 引数に数値を使用するには、[Model Settings] で [Current Period] を定義する必要があります。
  • Start period 引数と End period 引数のどちらかで日付値を使用した場合は引数の位置が入れ替わります。つまり、End period 引数は集計が始まる期間内の日付になり、Start period は集計が終了する期間内の日付になります。

この例にはモジュールが二つあります。最初のモジュールでは列に時間ディメンション、行に「Revenue」ライン アイテムがあります。モジュールの名前は「Revenue 2021」で、この後に出てくる式で参照されています。

[Model Settings] → [Time] で定義したとおり、このモデルの現在の期間は「May 21」です。


Jan 21Feb 21Mar 21Apr 21May 21Jun 21Jul 21Aug 21Sep 21Oct 21Nov 21Dec 21
Revenue101,480130,156117,021122,556123,160143,432130,784134,415115,309117,279128,835108,029

二つ目のモジュールにはライン アイテムしかなく、それぞれのライン アイテムに式があります。これらの式は、Start period 引数と End period 引数 を使用して集計期間を指定する方法を示したものです。

それぞれの式を別々のモジュールに分けているのは、時間ディメンションのないモジュールで TIMESUM を使用してパフォーマンスを改善する必要があるためです。

Revenue for all periods
TIMESUM(Revenue 2021.Revenue)
1,472,456
Revenue for 2 months ago
TIMESUM(Revenue 2021.Revenue, -2)
117,021
Revenue from 2 months ago to current period
TIMESUM(Revenue 2021.Revenue, -2, 0)
362,737
Revenue for duration of Spring campaign
TIMESUM(Revenue 2021.Revenue, TIME.'Jan 21', TIME.'Apr 21')
471,213

Revenue for all periods」ライン アイテムにある最初の式では、Line item to aggregate 引数に「Revenue」ライン アイテムのみを使用しています。つまり、この式では TIMESUM のデフォルトの動作を使用してモジュール内のすべての値を合計しています。この動作は Weeks:General[Model Settings] → [Time] で使用する場合に便利です (このカレンダー タイプにはすべての期間の集計が含まれていないため)。

Revenue for 2 months ago」ライン アイテムにある二つ目の式では、Line item to aggregate 引数に「Revenue」ライン アイテムを使用しています。この式では Start period 引数に -2 を使用しています。つまり、この式では現在の期間である「May 21」の二つ前の期間の値のみが返されます。今回のケースでは「Mar 21」の「117,021」が返されます。

Polaris の場合、この式では「Mar 21」から対象の時間範囲の最後の期間までのすべての値が集計されます。

Revenue from 2 months ago to current period」ライン アイテムにある三つ目の式では、Line item to aggregate 引数に「Revenue」ライン アイテムを使用しています。この式では、Start period 引数に -2End period 引数に 0 を使用しています。つまり、この式では、現在の期間の二つ前の期間から現在の期間までの値を合計しています。今回のケースでは、「Mar 21」、「Apr 21」、「May 21」の値の合計である「362,737」となります。

Revenue for duration of Spring campaign」ライン アイテムにある四つ目の式では、Line item to aggregate 引数に「Revenue」ライン アイテムを使用しています。この式では、Start period 引数と End period 引数で時間ディメンションへの参照を使用してます。それぞれ、「Time.'Jan 21'」と「Time.'Apr 21'」です。つまり、この式ではこれらの期間それぞれ、及びこれらの期間の間の「Revenue」ライン アイテムの値を合計しています。式では時間ディメンションへの参照を使用しているため、モデル カレンダーの現在の期間が変わっても式の値は変わりません。

この例にはモジュールが二つあります。最初のモジュールでは列に時間ディメンション、行に複数のライン アイテムがあります。モジュールの名前は「Initiative KPIs 2021」で、この後に出てくる式で参照されています。

[Model Settings] → [Time] で定義したとおり、このモデルの現在の期間は「Dec 21」です。


Jan 21Feb 21Mar 21Apr 21May 21Jun 21Jul 21Aug 21Sep 21Oct 21Nov 21Dec 21
Revenue101,480130,156117,021122,556123,160143,432130,784134,415115,309117,279128,835108,029
Promotion Active?

true





New product release date

3/24/20214/30/2021

7/14/2021

/10/15/202111/1/2021
Product name

Apple pieCinnamon swirl

Sugar donut

Lemon meringue pieMille-feuille

二つ目のモジュールにはライン アイテムしかなく、それぞれのライン アイテムに式があります。これらの式は、Aggregation method 引数の各キーワードの動作を示したものです。それぞれの式で Start period-2End period0 を使用しています。つまり、これらが Oct 21Nov 21Dec 21 の値に適用されます。

それぞれの式を別々のモジュールに分けているのは、時間ディメンションのないモジュールで TIMESUM を使用してパフォーマンスを最適化する必要があるためです。

過去 3 か月の合計収益

TIMESUM(Initiative KPIS 2021.Revenue, -2, 0, SUM)

354,143

過去 3 か月の平均収益

TIMESUM(Initiative KPIS 2021.Revenue, -2, 0, AVERAGE)

118,048

過去 3 か月の最低収益

TIMESUM(Initiative KPIS 2021.Revenue, -2, 0, MIN)

108,029

過去 3 か月の最高収益

TIMESUM(Initiative KPIS 2021.Revenue, -2, 0, MAX)

128,835

過去 3 か月の間にプロモーションが実施されたかどうか

TIMESUM(Initiative KPIS 2021.Promotion active?, -2, 0, ANY)

true

過去 3 か月全体を通じてプロモーションが実施されたかどうか

TIMESUM(Initiative KPIS 2021.Promotion active?, -2, 0, ALL)


過去 3 か月以内における最初の製品リリース日

TIMESUM(Initiative KPIS 2021.New product release date, -2, 0, FIRSTNONBLANK)

10/15/2021

過去 3 か月以内における最後の製品リリース

TIMESUM(Initiative KPIS 2021.New product release date, -2, 0, LASTNONBLANK)

11/1/2021

過去 3 か月でリリースされた製品の名前

TIMESUM(Initiative KPIS 2021.Product name, -2, 0, TEXTLIST)

Lemon meringue pie、Mille-feuille

最初の四つのライン アイテムには SUMAVERAGEMINMAX の各キーワードの動作を示した式がそれぞれにあります。これらの集計方法は数値形式の値でのみ使用できます。「Oct 21」、「Nov 21」、「Dec 21」では値がそれぞれ「117,279」、「128,835」、「108,029」で、式では次の処理が行われます。

  • 三つの値が合計されて 354,143 となります。
  • 三つの値の平均である 118,048 を返します。
  • 三つの値の最低値である 108,029 を返します。
  • 三つの値の最高値である 128,835 を返します。

五つ目のライン アイテムには ANY キーワードの動作を示した式、六つ目のライン アイテムには ALL キーワードの動作を示した式があります。これらの集計方法はブール値形式の値でのみ使用できます。「Oct 21」、「Nov 21」、「Dec 21」の値に対して、式では次の処理が行われます。

  • ブール値のいずれかが TRUE になるかどうかをチェックします。三つのうちの二つが TRUE になるため、値として TRUE を返します。
  • すべてのブール値が TRUE になるかどうかをチェックします。三つのうちの二つだけが TRUE になるため、値として FALSE を返します。

七つ目のライン アイテムには FIRSTNONBLANK キーワードの動作を示した式、八つ目のライン アイテムには LASTNONBLANK キーワードの動作を示した式があります。これらの集計方法は値の形式が数値、日付、リスト、又はテキストの場合に使用できます。こちらのケースでは、製品リリース日を表す日付がライン アイテムにあります。「Oct 21」、「Nov 21」、「Dec 21」の値に対して、式では次の処理が行われます。

  • 最初の空白以外の日付形式値である 10/15/2021 を返します。
  • 最後の空白以外の日付形式値である 11/1/2021 を返します。

九つ目のライン アイテムには TEXTLIST キーワードの動作を示した式があります。この集計方法はテキスト形式の値でのみ使用できます。この式は Oct 21、Nov 21、Dec 21 の値を連結して値ごとにカンマで区切ります。「Lemon meringue pie, Mille-feuille」が返されます。