set 分析および set 数式
set 分析を使用すると、現在の選択で定義された通常のセットとは異なるデータ値のセット (またはグループ) を定義できます。
通常、選択を行う場合、Sum、Max、Min、Avg、Count などの集計関数が選択した範囲 (現在の選択) に対して集計を行います。選択によって、集計するデータ・セットが自動的に定義されます。set 分析を使用すると、現在の選択に関係なくグループを定義できます。たとえば、現在の選択に関係なく、ある商品の全地域での市場シェアなど特定の値を表示する場合に便利です。
set 分析は、ベストセラー商品をあまり売れていない商品と比較したり、今年と昨年で比較する場合など、さまざまな比較を行うときにも役立ちます。
リスト ボックスで 2010 年を選択することによってドキュメントでの作業を開始する例を考えてみましょう。集計はその選択に基づき、チャートにはその年の値のみが表示されます。新しい選択を行うと、それに従ってチャートが更新されます。集計は、現在の選択によって定義されたレコード セットに対して行われます。set 分析を使用すると、関心のあるセットを定義することが可能で、選択に依存しません。
set 数式の作成
set 分析の例の別の部分を見る前に、set 数式と set 分析には次の違いがあります。
項目値のセットを定義する作業は「set 数式の定義」と呼ばれていますが、set 数式を使用してデータを分析する作業は「set 分析」と呼ばれています。そのため、この選択の残りの部分では set 数式とそのコンポーネントに焦点を当てます。
set 分析の例: sum( {$<Year={2009}>} Sales )。{$<Year={2009}>} は set 数式です。
set 数式は集計関数の内部と外部で使用でき、中括弧で囲まれます。
内部 set 数式
Sum( {$<Year={2021}>} Sales )外部 set 数式
{<Year={2021}>} Sum(Sales) / Count(distinct Customer)内部 set 数式と外部 set 数式の詳細については、「内部 set 数式と外部 set 数式」を参照してください。
set 数式は、次の部分の組み合わせで構成されます。
- Identifiers。1 つ以上の識別子が set 数式と残りの数式で評価されるものの関係を定義します。単純な set 数式は、ドル記号 {$} など、現在の選択のすべてのレコードを意味する 1 つの識別子で構成されます。
- Operators。識別子が 2 つ以上ある場合は、たとえば、識別子によって表されるデータ セットをどのように組み合わせてサブセットやスーパーセットを作成するのかを指定することによって、演算子を使用してデータ セットを絞り込みます。
- Modifiers。修飾子を set 数式に追加して選択を変更できます。修飾子は、単一で使用するか、識別子を変更してデータ セットをフィルタするために使用できます。
-
空セット保持フラグ 。外部 set 数式のチェーン内の最後の式を除く、すべての外部 set 数式で使用できる高度な要素。 このフラグは、これらの外部 set 数式で定義されたセットの暗黙的なセットのクリアをオーバーライドし、高度な数式の構成を簡素化します。
構文:&
参照: 空セット保持フラグ
識別子、演算子、および修飾子については、次のサブセクションで詳しく説明します。
識別子
識別子は、set 数式と評価対象の項目値または数式との関係を定義します。
この例の sum( {$<Year={2009}>} Sales ) では、識別子はドル記号 $ です。これは、評価されるレコード セットが現在の選択のすべてのレコードで構成されていることを意味します。このセットは、set 数式の修飾子部分でさらにフィルタリングされます。より複雑な set 数式では、演算子を使用して 2 つの識別子を組み合せることができます。
$ セット識別子は、セット識別子を指定しないことと同じになります。たとえば、上の例では、Sum( {$<Year = {2009}>} Sales ) という数式は Sum( {<Year = {2009}>} Sales ) と同等になります。
このテーブルには、いくつかの一般的な識別子が表示されています。
| 識別子 | 説明 |
|---|---|
| 1 | 行われた選択に関係なく、アプリケーションに含まれるすべてのレコード セットを表しています。 |
| $ (またはセット識別子なし)。 | 現在選択されているレコードを表しています。set 数式 {$} は、set 数式を提示していない状態と同様です。 |
| $1 | 以前の選択を表しています。$2 は以前の 1 つを除く選択を表し、以下同様に表します。 |
| $_1 | 次 (将来) の選択を表しています。$_2 は次の 1 つを除く選択を表し、以下同様に表します。 |
| BM01 | 任意のブックマーク ID またはブックマーク名を使用できます。 |
| MyAltState | ステートの名前で並列ステートで行った選択内容を参照できます。 |
| 例 | 結果 |
|---|---|
| sum ({1} Sales) | 選択を無視して、ドキュメントの sales の合計が軸ごとに返されます。 |
|
sum ({$} Sales) |
現在の選択の sales が返されます (sum(Sales) と同様)。 |
|
sum ({$1} Sales) |
前の選択の sales が返されます。 |
|
sum ({BM01} Sales) |
BM01 という名前のブックマークの sales が返されます。 |
演算子
演算子は、データ セットの一部または全体を包含、除外、または交差するために使用されます。すべての演算子はオペランドとして set を使用し、結果として set を返します。
このテーブルには、set 数式で使用できる演算子が表示されています。
| 演算子 | 説明 |
|---|---|
| + | Union。この二項演算子は、2 つの SET オペランドのいずれかに属するレコードを含む SET を返します |
| - | Exclusion。この二項演算子は、2 つの内最初の SET オペランドにのみ属するレコードを含む SET を返します。また、単項演算子として使用する場合は、補集合を返します。 |
| * | Intersection。この二項演算子は、2 つの SET オペランドの両方に属するレコードを含む SET を返します。 |
| / | 対称差演算子 (XOR)。この二項演算子は、2 つの SET オペランドのどちらかに属していて、両方に属していないレコードを含む SET を返します。 |
| 例 | 結果 |
|---|---|
| sum( {1-$} Sales ) | 選択によって除外された、あらゆる sales を返します。 |
| sum( {$*BM01} Sales ) | 選択とブックマーク BM01 の共有部分における sales を返します。 |
| sum( {-($+BM01)} Sales ) |
選択とブックマーク BM01 によって除外された sales を返します。 |
| Sum({$<Year={2009}>+1<Country={'Sweden'}>} Sales) |
現在選択されている内容に関連して、2009 年の販売額を返し、1 年間を通じて国 Sweden に関連するデータのフルセットを追加します。 この式は、以下のセット識別子を使用します。$。したがって、セット識別子を記述しないこの式と等価となります。Sum({<Year={2009}>+1<Country={'Sweden'}>} Sales)。 |
修飾子
修飾子は、選択に追加または変更を行う場合に使用されます。そのような修飾子は、set 数式で使用できます。修飾子は 1 つ以上の項目名で構成され、それぞれの後には項目で行うことのできる 1 つ以上の選択が続きます。修飾子は山括弧 <> で囲みます。
set 修飾子は set 識別子に先行する選択内容を変更します。set 識別子を参照していない場合、現在の選択のステートは黙示的となります。
| MyField | 結果 |
|---|---|
| sum({$<OrderDate = DeliveryDate>} Sales) |
OrderDate = DeliveryDate の現在の選択の sales が返されます。 この式は以下のセット識別子を使用します。$。したがって、セット識別子を記述しないこの式と等価となります。sum({<OrderDate = DeliveryDate>} Sales)。 |
|
sum({1<Region = {US}>} Sales) |
現在の選択を無視して、US 地域の sales が返されます。 |
|
sum({$<Region = >} Sales) |
選択における Region での選択を除いた sales が返されます。 この式は以下のセット識別子を使用します。$。したがって、セット識別子を記述しないこの式と等価となります。sum({<Region = >} Sales)。 |
|
sum({<Region = >} Sales) |
上記の例と同じ値が返されます。set 修飾子が省略されている場合は、継承したステートとみなされます。 |
| sum({$<Year={2000}, Region={"U*"}>} Sales) |
現在の選択条件での sales が返されますが、Year と Region で新たな選択が行われます。 この式は以下のセット識別子を使用します。$。したがって、セット識別子を記述しないこの式と等価となります。sum({<Year={2000}, Region={"U*"}>} Sales)。 |
set 修飾子 を参照して、修飾子の詳細な説明とより複雑な set 分析での使用方法をご確認下さい。