メイン コンテンツをスキップする

set 分析

アプリで選択するときは、データ内のレコードのサブセットを定義します。Sum()Max()Min()Avg()Count() などの集計関数は、このサブセットに基づいて計算されます。

つまり、選択内容によって集計の範囲が定義されます。 計算が行われるレコードのセットを定義します。

set 分析は、現在の選択条件によって定義されたレコードのセットとは異なるスコープを定義する方法を提供します。この新しいスコープは、代替値選択と見なすこともできます。

これは、現在の選択を特定の値 (例えば、昨年の値や世界の市場シェア) と比較する場合に役立ちます。

set 数式

set 数式は中括弧で囲まれた集計関数内で使用されます。例:

Sum( {$<Year={2021}>} Sales )

set 数式には、次の要素の組み合わせが含まれます。

  • 識別子set 識別子は他の場所で定義された選択を表します。また、データ内の特定のレコード セットを表します。これは、現在の選択、ブックマークからの選択、または並列ステートからの選択である可能性があります。単純な set 数式は、ドル記号 {$} など、現在の選択のすべてのレコードを意味する 1 つの識別子で構成されます。

    例: $1BookMark1State2

    参照先: set 識別子

  • 演算子set 演算子を使用して、異なる set 識別子間の和集合、差分、または共通部分を作成できます。このようにして、set 識別子によって定義された選択のサブセットまたはスーパーセットを作成できます。

    例: +-*/

    参照先: set 演算子

  • 修飾子set 修飾子を set 識別子に追加して、その選択を変更できます。修飾子は単独で使用することもでき、既定の識別子を変更します。修飾子は山括弧 <…> でくくる必要があります。

    例: <Year={2020}><Supplier={ACME}>

    参照先: set 修飾子

要素が組み合わされて、set 数式が形成されます。

set 数式の要素

set 数式の要素

この set 数式は、集計 Sum(Sales) から構築されます。

最初のオペランドは、現在の選択の 2021 年の売上を返します。これは、$ set 識別子と 2021 年の選択を含む修飾子によって示されます。2 番目のオペランドは Sweden に対して Sales を返し、1 set 識別子で示される現在の選択条件を無視します。

最後に、数式は、+ set 演算子で示されるように、2 つのセット オペランドのいずれかに属するレコードで構成されるセットを返します。

完全な構文の説明については、set 数式の構文 を参照してください。

上記の set 数式要素を組み合わせた例は、次のトピックで利用できます。

Natural sets

通常、set 数式は、データ モデル内のレコードのセットと、このデータのサブセットを定義する選択の両方を表します。この場合、セットは natural set と呼ばれます。

set 識別子は、set 修飾子の有無にかかわらず、常に natural set を表します。

ただし、set 演算子を使用した set 数式もレコードのサブセットを表しますが、通常、項目値の選択を使用して記述することはできません。そのような数式は non-natural set です。

例えば、{1-$} によって与えられたセットは、常に選択によって定義されるとは限りません。したがって、それは natural set ではありません。これは、次のデータをロードしてテーブルに追加し、フィルター パネルを使用して選択することで表示できます。

Load * Inline [Dim1, Dim2, Number A, X, 1 A, Y, 1 B, X, 1 B, Y, 1];		 

Dim1Dim2 を選択すると、次のテーブルに示すビューが表示されます。

natural と non-natural set を持つテーブル

natural と non-natural set を持つテーブル

最初のメジャーの set 数式は natural set を使用します。これは、{$} で行われた選択に対応します。

2 番目のメジャーは異なります。{1-$} を使用します。このセットに対応する選択はできないため、non-natural set です。

この区別は、いくつかの結果をもたらします。

  • set 修飾子は set 識別子にのみ適用できます。任意の set 数式に適用することはできません。例えば、次のような set 数式を使用することはできません。 

    { (BM01 * BM02) <Field={x,y}> }

    ここで、通常の (丸) 括弧は、set 修飾子を適用する前に BM01BM02 の共通部分を評価する必要があることを意味します。その理由は、変更できる要素セットがないためです。

  • P() および E() 要素関数内で non-natural set を使用することはできません。これらの関数は要素セットを返しますが、non-natural set から要素セットを推測することはできません。

  • データ モデルに多くのテーブルがある場合、non-natural set を使用するメジャーは、常に正しい軸の値に起因するとは限りません。例えば、次のチャートでは、除外された販売数の一部は正しい Country に起因しますが、他の数は NULLCountry として持っています。

    non-natural set のチャート

    Table with non-natural set.

    割り当てが正しく行われるかどうかは、データ モデルによって異なります。この場合、選択によって除外された国に関連する番号を割り当てることはできません。