TIBCO Spotfire® Business Author and Consumer User's Guide

Intersect()

2 つ以上のノード ナビゲーション メソッドの交差の結果であるノードを参照する場合は、Intersect() ナビゲーション メソッドを使用します。

以下に例を示します。



このイメージは、Q3 を現在のノードとして、AllPrevious() ナビゲーション メソッドと Parent() ナビゲーション メソッドの交差を示しています。両方のメソッドで見つかったノードは、2019 年第 1 ~第 3 四半期です。

どの四半期が現在のノードであるかに関係なく、交差は、第 1 四半期から現在のノードの四半期までの期間になります。つまり、Intersect() メソッドの一般的な使用事例は年初来の計算です (以下の例を参照)。

注: 例で使用される式はインメモリ データが使用されることを前提としています。

年初来の計算の例 (YTD)

棒グラフは、2016 ~ 2018 年の四半期ごとの売上高の合計を示しています。



各年の累積合計を知りたいとします。AllPrevious() ナビゲーション メソッドを使用する場合、以前のすべての月を合計します。しかし、2017 年第 1 四半期にはもう一度合計を開始し、前年 (2016 年) の四半期の合計を無視するとします。



たとえば、2017 年第 3 四半期の累積合計は 976 (317+307+352) である必要があります。これらの 3 つの棒のみを参照するには、Intersect() メソッドが便利です。AllPrevious() メソッドでの合計には 2016 年第 1 ~第 4 四半期、および 2017 年第 1 ~第 3 四半期が含まれ、Parent() メソッドには 2017 年の四半期すべてが含まれます。これら 2 つのナビゲーション モードの交差は、対象となる棒のみを正確に返します。

Intersect() が 2 つのメソッドを組み合わせる場所に以下の式を適用し、たとえば 2017 年第 3 四半期の結果を表示します。



データが複数の軸で分割されている場合の Intersect() の使用例

さまざまな軸を使用してデータをスライスするたびに、データはさらに小さなスライスへと分割され、その表現にはより多くのマーカーが使用されます。式を適用すると、データの最小スライス上で機能します。上記の例では、データはカテゴリの軸のみで分割されています。では、たとえば色の軸によっても分割した場合はどうなるでしょうか? 例を使用して説明します。

次の棒グラフは、タイタニック号沈没事故の生存統を示したものです。データはカテゴリの軸のみで分割されています。



次のイメージの式を使用すると、この情報を絶対数ではなくパーセントで表示できます。All() トピックも参照してください。

以下に示すように、色の軸を「生還」に設定して、生還した乗客を表す棒を区別するとします。



ただし、その場合はパーセンテージが変化することに注意してください。赤と青の棒はそれぞれ、4 つの棒すべてではなく、合計で 100% になります。これは、式ではデータが色の軸によってさらに小さなスライスに分割されることを考慮していないために発生します。 ...OVER (All([Axis.X]))... の部分は、カテゴリの軸のスライスを無視しますが、軸ごとの色のスライスは無視しません。

ただし、以下に示すように、Intersect() メソッドを使用すると、色を維持し、すべての棒の合計を 100% にすることができます。



式の All([Axis.X]) および All([Axis.Color]) の部分は、これらの各軸のスライスが無視されることを意味します。次に Intersect() メソッドは、これら 2 つの部分を結合します。したがって、各棒の値がすべての棒の合計で除算されます。