# 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 修飾子のチャートの数式

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-modifiers-implicit-field-value-definitions.htm)

#### 例 - チャートの数式

ロード スクリプト

以下のデータをインライン データとしてデータロードエディタにロードして、以下のチャートの数式の例を作成します。

```
MyTable:
Load 
Year(Date) as Year,
Date#(Date,'YYYY-MM-DD') as ISO_Date, 
Date(Date#(Date,'YYYY-MM-DD'),'M/D/YYYY') as US_Date, 
Country, Product, Amount 
Inline
[Date, Country, Product, Amount
2018-02-20, Canada, Washer, 6
2018-07-08, Germany, Anchor bolt, 10
2018-07-14, Germany, Anchor bolt, 3
2018-08-31, France, Nut, 2
2018-09-02, Czech Republic, Bolt, 1
2019-02-11, Czech Republic, Bolt, 3
2019-07-31, Czech Republic, Washer, 6
2020-03-13, France, Anchor bolt, 1
2020-07-12, Canada, Anchor bolt, 8
2020-09-16, France, Washer, 1];	
```

インライン ロードの使用の詳細については、[インライン ロードを使用したデータのロード](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm) を参照してください。

チャートの数式

次のチャートの数を使用して、Qlik Sense シートにテーブルを作成します。

テーブル - set 関数を使用した set 修飾子

| 国 | Sum(Amount) | Sum({&lt;Country=P({&lt;Year={2019}&gt;}Country)&gt;} Amount) | Sum({&lt;Product=P({&lt;Year={2019}&gt;}Product)&gt;} Amount) | Sum({&lt;Country=E({&lt;Product={Washer}&gt;}Country)&gt;} Amount) |
| --- | --- | --- | --- | --- |
| 合計 | 41 | 10 | 17 | 13 |
| カナダ | 14 | 0 | 6 | 0 |
| チェコ共和国 | 10 | 10 | 10 | 0 |
| フランス | 4 | 0 | 1 | 0 |
| ドイツ | 13 | 0 | 0 | 13 |

説明

* 軸：

  * `Country`

* 数式：

  * `Sum(Amount)`

    set 数式なしで `Amount` を合計します。

  * `Sum({<Country=P({<Year={2019}>} Country)>} Amount)`

    `2019` 年に関連する国の場合は Sum `Amount` です。ただし、計算は `2019` に限定されません。

  * `Sum({<Product=P({<Year={2019}>} Product)>} Amount)`

    `2019` 年に関連する製品の場合は Sum `Amount` です。ただし、計算は `2019` に限定されません。

  * `Sum({<Country=E({<Product={Washer}>} Country)>} Amount)`

    製品 `Washer` に関連付けられていない国の場合は Sum `Amount` です。

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

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

set 関数を使用した set 修飾子 ![set 関数を使用した set 修飾子。](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Resources/Images/ui_gen_setanalysis_modifiers_set_functions.png)

数式の詳細については、「[ビジュアライゼーションにおける数式の使用](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/use-expressions-in-visualizations.htm)」を参照してください。

| 例 | 結果 |
| --- | --- |
| sum( {$&lt;Customer = P({1&lt;Product={'Shoe'}&gt;} Customer)&gt;} Sales ) | 現在の選択に対する売上が返されますが、製品「Shoe」を購入したことのある顧客のみが対象となります。要素関数 P( ) はここで、絞込まれた顧客 (「Shoe」を項目 Product で選択することで黙示的に定義) のリストを返します。 |
| sum( {$&lt;Customer = P({1&lt;Product={'Shoe'}&gt;})&gt;} Sales ) | 上記と同様です。要素関数内の項目が省略されると、外部代入で指定された項目に可能な値が返されます。 |
| sum( {$&lt;Customer = P({1&lt;Product={'Shoe'}&gt;} Supplier)&gt;} Sales ) | 現在の選択条件に対する売上高が返されますが、製品「Shoe」を供給したことのある顧客、つまり、サプライヤでもある顧客のみが対象となります。要素関数 P( ) はここで、絞込まれたサプライヤ (「Shoe」を項目 Product で選択することで黙示的に定義) のリストを返します。次に、サプライヤのリストは項目 Customer の選択に使用されます。 |
| sum( {$&lt;Customer = E({1&lt;Product={'Shoe'}&gt;})&gt;} Sales ) | 現在の選択に対する sales が返されますが、製品「Shoe」を購入したことのない顧客のみが対象となります。ここで関数 E( ) は、「Shoe」を Product 項目で選択することによって除外された Customer のリストを返します。 |