メイン コンテンツをスキップする 補完的コンテンツへスキップ

set 関数を使用した set 修飾子

ネストされた set 定義を使用して、項目値のセットを定義する必要がある場合があります。例えば、製品を選択せずに、特定の製品を購入したすべての顧客を選択したい場合があります。

このような場合は、要素セット関数 P() および E() を使用してください。これらは、それぞれ、項目の可能な値と除外された値の要素セットを返します。角括弧内で、問題の項目と、スコープを定義する set 数式を指定できます。例:

P({1<Year = {2021}>} Customer)

これにより、2021 年にトランザクションが発生した一連の顧客が返されます。その後、これを set 修飾子で使用できます。例:

Sum({<Customer = P({1<Year = {2021}>} Customer)>} Amount)

この set 数式はこれらの顧客を選択しますが、選択を 2021 年に制限するものではありません。

これらの関数は、他の数式では使用できません。

さらに、要素セット関数内で使用できるのは natural set のみです。つまり、単一の選択によって定義されたレコードのセットです。

例えば、{1-$} によるセットは選択を通して定義されたものとは限らず、そのため natural set ではありません。これらの関数を non-natural set で使用すると、予期しない結果が返されます。

例: set 関数を使用した set 修飾子のチャートの数式

結果
sum( {$<Customer = P({1<Product={'Shoe'}>} Customer)>} Sales )

現在の選択に対する売上が返されますが、製品「Shoe」を購入したことのある顧客のみが対象となります。要素関数 P( ) はここで、絞込まれた顧客 (「Shoe」を項目 Product で選択することで黙示的に定義) のリストを返します。

sum( {$<Customer = P({1<Product={'Shoe'}>})>} Sales )

上記と同様です。要素関数内の項目が省略されると、外部代入で指定された項目に可能な値が返されます。

sum( {$<Customer = P({1<Product={'Shoe'}>} Supplier)>} Sales )

現在の選択条件に対する売上高が返されますが、製品「Shoe」を供給したことのある顧客、つまり、サプライヤでもある顧客のみが対象となります。要素関数 P( ) はここで、絞込まれたサプライヤ (「Shoe」を項目 Product で選択することで黙示的に定義) のリストを返します。次に、サプライヤのリストは項目 Customer の選択に使用されます。

sum( {$<Customer = E({1<Product={'Shoe'}>})>} Sales )

現在の選択に対する sales が返されますが、製品「Shoe」を購入したことのない顧客のみが対象となります。ここで関数 E( ) は、「Shoe」を Product 項目で選択することによって除外された Customer のリストを返します。

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。