# GetFieldSelections - 图表函数

GetFieldSelections() 用于返回包含字段内当前选择项的字符串。

如果选择除两个值以外的所有值，或除一个值以外的所有值，则分别使用格式“NOT x,y”或“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>这将在 max\_values &lt; x &lt; ( y - max\_values) 返回。 |
| 'ALL' | 在选定了所有值时返回。 |
| '-' | 在未选定值时返回。 |
| &lt;search string&gt; | 如果选择了使用搜索，则返回搜索字符串。 |

参数

| 参数 | 描述 |
| --- | --- |
| field\_name | 包含要度量的数据范围的字段。 |
| value\_sep | 置于字段值之间的分隔符。默认分隔符为“,”。 |
| max\_values | 将会单独列出字段值的最大数字。当选择更大的字段值数量时，会改用“x 个值，共 y 个”格式。默认值为 6。 |
| state\_name | 已为特定可视化选择的备用状态的名称。如果已使用 state\_name 参数，则将只考虑与指定状态名称关联的选择。<br><br>有关更多信息，请参阅[使用备用状态进行对比分析](https://help.qlik.com/zh-CN/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/zh-CN/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`。 | 度量返回 `NOT Jane;Peter` ，因为选择项的数目超过了 `2` 的 `max_value` 参数。如果没有设置 `max_value` ，则会显示所有选中的名称：`John; Sue; Mark`。 |

下图显示了表格中最后一个操作的结果，其中选择项的数量超过了 `max_values` 参数。

选择名字 John, Sue, 和 Mark 时的 KPI 结果

选择名字 John, Sue, 和 Mark 时的 KPI 结果

选择名字 John, Sue,John, Sue, 和 MarkMark 时的 KPI 结果 ![KPI 和筛选器窗格，显示超出 GetFieldSelections 函数中最大值的选择项。](https://help.qlik.com/zh-CN/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/zh-CN/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 结果显示在客户名称筛选器中选择了哪些名称。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-GetFldSel-example2.png)

您可以在 KPI 的筛选器窗格中看到所选的客户。