# GetFieldSelections - チャート関数

GetFieldSelections() は、項目内の現在の選択の string を返します。

すべての値の中で一部を除外して選択する場合、除外する値が 2 つの場合は「NOT x,y」、1 つの場合は「NOT y」形式を使用します。すべての値を選択し、その値のカウントが max\_values よりも大きい場合、ALL のテキストが返されます。

構文:

GetFieldSelections ( field\_name [, value\_sep [, max\_values [, state\_name]]])

戻り値データ型： 文字列

返される文字列の書式

| 形式 | 説明 |
| --- | --- |
| 'a, b, c' | 選択された値の数が max\_values 以下の場合、返される文字列は選択値のリストになります。<br><br>値は value\_sep を区切り記号として区切ります。 |
| 'NOT a, b, c' | 非選択値の数が max\_values 以下の場合、返される文字列は、非選択値のリストに NOT を前置したものです。<br><br>値は value\_sep を区切り記号として区切ります。 |
| 'x of y' | x = 選択値の数<br><br>y = 値の合計数<br><br><br>max\_values &lt; x &lt; ( y - max\_values) のときに返されます。 |
| 'ALL' | すべての値が選択されている場合に返されます。 |
| '-' | 値が選択されていない場合に返されます。 |
| &lt;search string&gt; | [検索] を選択した場合、検索文字列が返されます。 |

引数

| 引数 | 説明 |
| --- | --- |
| field\_name | メジャー対象となるデータ範囲が含まれている項目です。 |
| value\_sep | 項目値の間に配置される区切り記号。デフォルトは「,」です。 |
| max\_values | 個々にリストされる項目値の最大数です。この数が大きくなると、「x of ｙ value」(x/y 個) という表記が使用されます。デフォルトは 6 です。 |
| state\_name | 特定のビジュアライゼーションのために選択された並列ステートの名前。state\_name 引数が使用されると、特定のステート名に関連付けられた選択のみが対象になります。<br><br>詳細については、「[並列ステートを使用した比較分析](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/alternate-states-comparative-analysis.htm)」を参照してください。 |

例: チャートの数式

| 例 | 結果 |
| --- | --- |
| `GetFieldSelections( FirstName )` | `FirstName` 項目で選択されていない場合、「`-`」(NULL) を返します。それ以外の場合は、選択項目の値 (`John` など) を返します。 |

## 例 - GetFieldSelections の基本

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FieldFunctions/getfieldselections.htm)

#### チャートの数式

概要

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の次の項目:

  * `FirstName`

  * `LastName`

  * `Initials`

  * `HasCellphone`

ロード スクリプト

```
Example:
LOAD * inline [
FirstName|LastName|Initials|HasCellphone
John|Anderson|JA|Yes
Sue|Brown|SB|Yes
Mark|Carr|MC|No
Peter|Devonshire|PD|No
Jane|Elliot|JE|Yes
Peter|Franc|PF|Yes ] (delimiter is '|');
```

結果

1. データをロードしてシートを開きます。新しいフィルター パネルを作成し、次の項目を軸として追加します。

   * `FirstName`

2. KPI オブジェクトを作成し、次のメジャーを追加します。

   * `=GetFieldSelections(FirstName)`、`FirstName` 項目で選択された値を返します。

   ヒント メモこの例では、出力を見やすくするために、応答性が高いレイアウト動作を使用するように KPI のスタイルが調整されています。チャートのレイアウト動作の変更については、「[KPI のスタイル指定](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/KPI/create-kpis.htm#Styling)」を参照してください

3. [シートを編集] をクリックして分析モードに切り替え、表に表示されている順序で次のアクションを実行します。

   分析モードでのアクションと結果

   | アクション | KPI 結果 |
   | --- | --- |
   | `FirstName` フィルターから `John` を選択します。 | メジャーは、値 `John` を返します。 |
   | `FirstName` フィルターから `John` および `Peter` を選択します。 | メジャーは、値 `John, Peter` を返します。 |
   | [シートを編集] をクリックして編集モードに切り替え、KPI メジャー式を `=GetFieldSelections(FirstName,'; ')` のように編集します。 | メジャーは新しい `value_sep` 形式で `John; Peter` の値を返します。 |
   | KPI メジャー式を `=GetFieldSelections(FirstName,';', 2)` のように編集します。 | メジャーは新しい `value_sep` 形式の間隔で `John;Peter` の値を返します。 |
   | [シートを編集] をクリックして分析モードに戻ります。`FirstName` フィルターの選択をクリアし、`John`、`Sue`、`Mark` を選択します。 | 選択数が `2` の引数 `max_value` を超えているため、メジャーは `NOT Jane;Peter` を返します。`max_value` が設定されていない場合、選択されたすべての名前である `John; Sue; Mark` が表示されます。 |

次の画像は、選択数が `max_values` 引数を超えるテーブル内の最後のアクションの結果を示しています。

ファースト ネーム John, Sue, と Mark を選択した KPI 結果

ファースト ネーム John, Sue, と Mark を選択した KPI 結果

ファースト ネーム John, Sue,John, Sue, と MarkMark を選択した KPI 結果 ![GetFieldSelections 関数の最大値を超える選択を表示する KPI とフィルター パネル。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-GetFldSel-example.png)

この例では、選択が行われると `GetFieldSelections` 関数によって返される値がどのように変化するかを確認できます。

## 例 - GetFieldSelections のシナリオ

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FieldFunctions/getfieldselections.htm)

#### チャートの数式

概要

`GetFieldSelections` 関数は、選択された顧客名を強調表示するために使用されます。

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の次の項目:

  * `OrderID`

  * `CustomerName`

  * `Product`

  * `Quantity`

ロード スクリプト

```
Example:
LOAD * INLINE [
OrderID, CustomerName, Product, Quantity
1, John Doe, Laptop, 2
2, Jane Smith, Smartphone, 1
3, Ahmed Khan, Desk, 3
4, Maria Garcia, Chair, 1
5, Li Wei, Blender, 2
];
```

結果

1. データをロードしてシートを開きます。新しいフィルター パネルを作成し、次の項目を軸として追加します。

   * `CustomerName`

   * `Product`

2. KPI オブジェクトを作成し、次のメジャーを追加します。

   * `=GetFieldSelections(CustomerName)`。

   ヒント メモこの例では、出力を見やすくするために、応答性が高いレイアウト動作を使用するように KPI のスタイルが調整されています。チャートのレイアウト動作の変更については、「[KPI のスタイル指定](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/KPI/create-kpis.htm#Styling)」を参照してください。

3. [シートを編集] をクリックして分析モードに切り替え、`CustomerName` フィルターから `Jane Smith` および `John Doe` を選択します。

   `GetFieldSelections` 関数は、値 `Jane Smith, John Doe` を返します。

   ![KPI 結果には、Customer Name フィルターで選択された名前が表示されます。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-GetFldSel-example2.png)

KPI のフィルター パネルで選択された顧客を確認できます。