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

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

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

引数データ型説明
Line item to aggregate (必須)

数値、ブール値、日付、リスト、又はテキスト

この引数はライン アイテムである必要があります。

一定期間内で集計するライン アイテム

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

Start period数値、日付、時間軸

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

省略した場合、関数はすべての期間を集計します。

End period数値、日付、時間軸

集計を終了する終了期間。この期間は集計に含まれる

省略した場合、関数は Start period 引数の期間の値だけを返します。

Aggregation methodキーワード

使用する集計方法

使用可能なキーワードは SUM、AVERAGE、MIN、MAX、ANY、ALL、FIRSTNONBLANK、LASTNONBLANK、TEXTLIST です。詳細は以下を参照してください。

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

TIMESUM 関数は Line item to aggregate 引数と同じデータ型で結果を返します。

キーワード対応するデータ タイプ説明
SUM数値値の合計を返します。
AVERAGE数値値の平均を返します。
MIN数値、日付

数値の場合は最小値を返します。

日付の場合は最も早い値を返します (空白セルが一番早い値とみなされます)。

MAX数値、日付

数値の場合は最高値を返します。

日付の場合は直近の可能な日付を返します。

ANYブール値ブール形式ライン アイテムのいずれかの値が TRUE の場合に TRUE の値を返します。
ALLブール値ブール形式ライン アイテムのすべての値が TRUE の場合に TRUE の値を返します。
FIRSTNONBLANK数値、日付、リスト、又はテキストすべてのデータ型について、最初の非空白値を返します。
LASTNONBLANK数値、日付、リスト、又はテキストすべてのデータ型について、最後の非空白値を返します。
TEXTLISTテキストテキスト形式のライン アイテムのすべての値をカンマとスペースで区切って返します。

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 は集計が終了する期間内の日付になります。

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 は集計が始まる期間内の日付になります。

この例にはモジュールが二つあります。最初のモジュールでは列に時間ディメンション、行に「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?




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)

過去 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

最初の四つのライン アイテムには SUM、AVERAGE、MIN、MAX の各キーワードの動作を示した式がそれぞれにあります。これらの集計方法は数値形式の値でのみ使用できます。「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」が返されます。