# After - 图表函数

After() 用于返回使用透视表的维度值评估的表达式值，因为维度值显示在透视表的行段内当前列之后的列。

语法：

after([TOTAL] expr [, offset [, count ]])

信息注释当在图表的任何表达式中使用此图表函数时，不允许对图表中的 y 值进行排序或按表中的表达式列进行排序。因此，这些排序替代项会自动禁用。当您在可视化或表格中使用此图表函数时，可视化的排序将返回到此函数的排序输入。

信息注释 在除透视表之外的所有图表类型中，此函数会返回 NULL。

参数

| 参数 | 描述 |
| --- | --- |
| expr | 表达式或字段包含要度量的数据。 |
| offset | 指定 offsetn（大于 1）会将表达式评估从当前列开始向右移动 n 列。<br><br>指定 0 偏移量可以计算当前列上的表达式的值。<br><br>指定负偏移量数值后，使 After 函数效果类似于具有相应正偏移量数值的 Before 函数。 |
| count | 通过指定第三个参数 count（大于 1），函数将返回一连串值，每个值对应一个从原始单元格开始向右计数的 count 表格列。 |
| TOTAL | 如果表格是单维度或如果将 TOTAL 限定符用作参数，则当前列段数据总是与整列相等。<br><br>[定义聚合范围](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

行段的最后一列会返回 NULL 值，因为其后没有列。

如果透视表有多个水平维度，则当前行片断将只包括值与所有维度行中当前列相同的列，除显示字段排序间上一次水平维度的行之外。透视表的水平维度的内部字段排序只需依据从上至下的维度顺序定义。

示例：图表表达式

| 示例 | 结果 |
| --- | --- |
| `After( Sum(Sales ))` | 返回相对于当前列紧邻右侧的下一列的 `Sales` 总和。 |
| `After( Sum(Sales ), 2)` | 返回当前列右侧两列中的列中 `Sales` 的总和。 |
| `After( Total Sum( Sales ))` | 返回相对于当前列紧邻右侧的下一列的 `Sales` 总和。 |
| `RangeAvg (After(Sum(x),1,3))` | 返回紧邻当前列右侧的三列内评估的 `sum(x)` 函数的三个结果的平均值。 |

## 示例 - After 基本原理

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

#### 图表表达式

概述

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 加载到名为 `Example` 的数据表中的数据集。

* 数据表中有以下字段：

  * `Year`

  * `Quarter`

  * `Sales`

加载脚本

```
Example:
Load * inline [
Year, Quarter, Sales
2023, Q1, 5000
2023, Q2, 4000
2023, Q3, 6000
2023, Q4, 7000
];
```

结果

加载数据并打开工作表。创建一个新的透视表，并将此字段添加为行维度：

* `Year`

将此字段添加为列维度：

* `Quarter`

创建以下度量：

* `=Sum(Sales)`，计算销售额的总和。

* `=After(Sum(Sales))`，显示下一季度的销售额总和。

结果表

| 年 | Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | After(Sum(Sales)) | Sum(Sales) | After(Sum(Sales)) | Sum(Sales) | After(Sum(Sales)) | Sum(Sales) | After(Sum(Sales)) |  |
| 2023 | 5000 | 4000 | 4000 | 6000 | 6000 | 7000 | 7000 | - |

查看结果，您可以看到 `After` 函数如何返回紧邻每个 `Quarter` 的 `Sum(Sales)` 列右侧的下一列的值。例如，在 `Q1` 中，该时段的 `Sum(Sales)` 值为 `5000`。`After` 函数对 `Q1` 的输出是 `4000` ，因为这是 `Q1` 的 `Sum(Sales)` 右侧的列的值，即 `Q2` 的 `Sum(Sales)`。

## 示例 – After 场景

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

#### 图表表达式

概述

数据集包含一家电子公司几年的销售数据。该公司希望提供每年的总销售额，并逐年比较单位销售额。

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 加载到名为 `Example` 的数据表中的数据集。

* 数据表中有以下字段：

  * `Year`

  * `Sales`

加载脚本

```
Example:
Load * inline [
Year, Sales
2021, 1350
2022, 1840
2023, 2250
2024, 1750
];
```

结果

加载数据并打开工作表。创建一个新的透视表，并将此字段添加为列维度：

* ` Year
                                       `

创建以下度量：

* `=Sum(Sales)`，计算销售额的总和。

* `=Sum(Sales) - After(Sum(Sales))`，计算同比销售额差异。

结果表

| 年 | 2021 | 2022 | 2023 | 2024 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | Sum(Sales)-After(Sum(Sales)) | Sum(Sales) | Sum(Sales)-After(Sum(Sales)) | Sum(Sales) | Sum(Sales)-After(Sum(Sales)) | Sum(Sales) | Sum(Sales)-After(Sum(Sales)) |  |
| 2023 | 1350 | -490 | 1840 | -410 | 2250 | 500 | 1750 | - |

结果显示了每年的销售额总和以及一年与下一年销售额之间的差异。例如，在 `2022` 中，`Sum(Sales)` 是 `1840`。`After` 函数的输出表明，该值比 `2023` 的销售总额少 `410` 个单位。

## 示例 - After 进阶场景

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

#### 图表表达式

概述

数据集包含几年的销售数据。该公司希望提供本年度的总销售额和未来 3 年的滚动销售总额。

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 加载到名为 `Example` 的数据表中的数据集。

* 数据表中有以下字段：

  * `SalesYear`

  * `Sales`

加载脚本

```
Example:
Load * inline [
SalesYear, Sales
2021, 1300
2022, 1800
2023, 2000
2024, 2150
];
```

结果

加载数据并打开工作表。创建一个新的透视表，并将此字段添加为列维度：

* `SalesYear`

创建以下度量：

* `=Sum(Sales)`，计算销售额的总和。

* `=RangeSum(After(Sum(Sales),1,3))`，计算未来 3 年销售额的总和。

结果表

| 2021 | 2022 | 2023 | 2024 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | RangeSum(After(Sum(Sales),1,3)) | Sum(Sales) | RangeSum(After(Sum(Sales),1,3)) | Sum(Sales) | RangeSum(After(Sum(Sales),1,3)) | Sum(Sales) | RangeSum(After(Sum(Sales),1,3)) |
| 1300 | 5950 | 1800 | 4150 | 2000 | 2150 | 2150 | 0 |

结果显示了如何使用 `After` 函数返回未来三年的销售值总和。例如，在 `2021` 中，年度 `Sum(Sales)` 为 `1300`，未来 3 年 (`2022, 2023, 2024`) 的销售额总和为 `5950`。对 `2024` 返回值 `0` ，因为没有未来年份的数据。