# Below - 图表函数

Below() 用于评估表格中列段数据内当前行下面的行的表达式。要计算的行取决于 offset 值，如果存在，则默认计算直接下面的行。对于除表格以外的图表，Below() 用于计算图表的等效垂直表中当前列下面的行的值。

语法：

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

返回数据类型： 双

参数

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

在列段数据的最后一行中返回 NULL 值，因为该行下面没有其他行。

信息注释列段数据是指按当前排序顺序拥有与维度相同的值的连续单元格子集。内部记录图表函数在列段数据中进行计算，不包括等效垂直表图表中的最右侧维度。如果图表中只有一个维度，或者如果已指定 TOTAL 限定符，则计算整个表格中的表达式。

信息注释如果表格或表格等同物有多个垂直维度，当前列段数据将只包括值与所有维度列的当前行相同的行，但按内部字段排序显示最后维度的列除外。

限制：

* 递归调用将返回 NULL 值。

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

示例：图表表达式

| 示例 | 结果 |
| --- | --- |
| `Below( Sum(Sales) )` | 返回当前行下方一行的 `Sales` 值。 |

## 示例 - Below 基本原理

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

#### 图表表达式

概述

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

加载脚本包含：

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

* 数据表中有以下字段：

  * `Year`

  * `Sales`

加载脚本

```
Example:
LOAD * INLINE [
Year, Sales
2019, 1000
2020, 1500
2021, 1200
2022, 1800
2023, 1700
];
```

结果

加载数据并打开工作表。创建新表并将该字段添加为维度：

* `Year`

创建以下度量：

* `=Sum(Sales)`，用于查找年销售额。

* `=Below(Sum(Sales))`，用于查找下一年的销售额值。

* `=Sum(Sales) - Below(Sum(Sales))`，用于计算当前年度值与下一年度 `Sales` 值之间的差异。

* `=RangeSum(Below(Sales, 1, 2))`，用于展示下两年销售额的连续两年汇总。

* `=(Sales - Below(Sales)) / Below(Sales)`，用于以比率/百分比返回 `Sales` 的变化。 要将此值显示为百分比，可在数字格式设定下选择数字 &gt; 简单格式 &gt; 12.34%。

结果表

| Year | Sum(Sales) | Below(Sum(Sales)) | Sum(Sales) - Below(Sum(Sales)) | RangeSum(Below(Sales, 1, 2) | (Sales - Below(Sales)) / Below(Sales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 7200 | - | - | 0 | - |
| 2019 | 1000 | 1500 | -500 | 2700 | -33.33% |
| 2020 | 1500 | 1200 | 300 | 3000 | 25.00% |
| 2021 | 1200 | 1800 | -600 | 3500 | -33.00% |
| 2022 | 1800 | 1700 | 100 | 1700 | 5.88% |
| 2023 | 1700 | - | - | 0 | - |

查看结果后，您可以将当前期间的 `Sales` 值与下一期间进行比较。

* `Sum(Sales) - Below(Sum(Sales))` 度量值返回 `Sales` 值中的变化，将当前期间与下一期间进行比较。

* `RangeSum(Below(Sales, 1, 2))` 度量返回下两个 `Sales` 值的总和。

* `(Sales - Below(Sales)) / Below(Sales)` 度量以百分比形式返回与下个期间相比 `Sales` 的变化。

提示注释此函数也可以用于图表（如条形图），但不能用于表格。

执行以下操作：

创建条形图，然后将此字段添加为维度：

* `Year`

创建以下度量：

* `=Sum(Sales) - Below(Sum(Sales))`，返回同比差异。

显示 Below 函数结果的条形图

显示 Below 函数结果的条形图

显示 BelowBelow 函数结果的条形图 ![显示与下一年相比销售额总额的同比差异的条形图](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-below-example.png)

在条形图中使用 `Below` 函数，可以直观地比较当前期间销售额与下一期间销售额之间的差异。

## 示例 – Below 场景

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

#### 图表表达式

概述

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

加载脚本包含：

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

* 数据表中有以下字段：

  * `SalesYear`

  * `SalesAmount`

加载脚本

```
Example:
LOAD * INLINE [
SalesYear, SalesAmount
2019, 500
2020, 800
2021, 400
2022, 700
2023, 600
];
```

结果

加载数据并打开工作表。创建新表并将该字段添加为维度：

* `SalesYear`

创建以下度量：

* `=Sum(SalesAmount)`，用于汇总销售额。

* `=RangeSum(Below(SalesAmount, 0, NoOfRows() - RowNo()))`，用于计算 `SalesAmount` 值的概略总计。

结果表

| SalesYear | Sum(SalesAmount) | RangeSum(Below(SalesAmount, 0, NoOfRows() - RowNo())) |
| --- | --- | --- |
| Totals | 3000 | 0 |
| 2019 | 500 | 2400 |
| 2020 | 800 | 1900 |
| 2021 | 400 | 1100 |
| 2022 | 700 | 700 |
| 2023 | 600 | 0 |

结果显示了如何使用 `RangeSum` 函数和 `Below` 函数的组合来创建概略总计。

提示注释此函数也可以用于图表（如条形图），但不能用于表格。

执行以下操作：

创建条形图，然后将此字段添加为维度：

* `SalesYear`

创建以下度量：

* `=RangeSum(Below(SalesAmount, 0, NoOfRows() - RowNo()))`，用于返回累计概略销售额。

按年显示累计概略销售额值的条形图

按年显示累计概略销售额值的条形图

按年显示累计概略销售额值的条形图 ![显示累计概略销售额值的条形图。](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-below-example2.png)

将 `Below` 函数与条形图中的 `RangeSum` 结合使用，可以直观地显示累计的概略销售值。

## 示例 - 使用 Below 的图表表达式

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

#### 图表表达式

概述

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

加载脚本包含：

* 两个数据表分别名为 `Monthnames` 和 `Sales2013`。

加载脚本

```
Monthnames:
LOAD *, Dual(MonthText,MonthNumber) as Month INLINE [
MonthText, MonthNumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];

Sales2013:
Crosstable (MonthText, Sales) LOAD * inline [
Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
Astrida|46|60|70|13|78|20|45|65|78|12|78|22
Betacab|65|56|22|79|12|56|45|24|32|78|55|15
Canutility|77|68|34|91|24|68|57|36|44|90|67|27
Divadip|57|36|44|90|67|27|57|68|47|90|80|94
] (delimiter is '|'); 
```

结果

加载数据并打开工作表。创建新表并将该字段添加为维度：

* `Customer`

创建以下度量：

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

* `=Below(Sum(Sales))`，显示上一行的销售额总和。

* `=Sum(Sales)+Below(Sum(Sales))`，用于将销售价值总和与当前行下方客户行的销售额总和相加。

* `=Sum(Sales)+Below(Sum(Sales), 3)`，用于将当前 `Customer` 的 `Sum(Sales)` 值与下方相距三行的 `Customer` 的值相加。

* `=If(Sum(Sales)>Below(Sum(Sales)), 'Higher')`，用于为 `Sum(Sales)` 结果大于下方行中客户的 `Sum(Sales)` 的客户添加标签“`Higher`”。

结果表

| Customer | Sum(Sales) | Below(Sum(Sales)) | Sum(Sales)+Below(Sum(Sales)) | Sum(Sales)+Below(Sum(Sales), 3) | If(Sum(Sales)&gt;Below(Sum(Sales)), 'Higher') |
| --- | --- | --- | --- | --- | --- |
| Totals | 2566 | - | - | - | - |
| Astrida | 587 | 539 | 1126 | 1334 | Higher |
| Betacab | 539 | 683 | 1222 | - | - |
| Canutility | 683 | 757 | 1440 | - | - |
| Divadip | 757 | - | - | - | - |

对于包含多个维度的图表，表达式（包含 `Above`、`Below`、`Top` 和 `Bottom` 函数）的结果取决于 Qlik Sense 对列维度进行排序的顺序。Qlik Sense 根据最后排序的维度得出的列段数据计数函数的值。可以在排序下的属性面板中控制列排序顺序，并且列不一定按顺序显示在表格中。 有关使用排序顺序的示例，请参阅[示例 - 基于排序顺序的 Above 场景](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm#Example)。

度量 `Below(Sum(Sales))` 返回客户 `Divadip` 的 NULL，因为它下方没有行。行 `Canutility` 的结果显示 `Divadip` 的 `Sum(Sales)` 的值。`Betacab` 的结果显示 `Canutility` 的 `Sum(Sales)` 的值，以此类推。

对于度量 `Sum(Sales)+Below(Sum(Sales))`，`Astrida` 的行返回将行 `Betacab` + `Astrida` (`539+587`) 的 `Sum(Sales)` 值相加的结果。`Betacab` 行的结果将显示 `Canutility` + `Betacab` (`539+683`) 的 `Sum(Sales)` 值的相加结果。

度量 `Sum(Sales)+Below(Sum(Sales), 3)` 具有参数 `offset`，设置为 `3`，并具有取当前行下方相距三行的行中值的效果。它将当前 `Customer` 的 `Sum(Sales)` 值添加到下面三行 `Customer` 的值中。后三个 `Customer` 行的值是 NULL 值。

度量 `IF(Sum(Sales)>Below(Sum(Sales)), 'Higher')` 返回 `Astrida` 客户的值 `Higher`，因为他们的销售额结果大于下一行中客户的销售总和 `Betacab`。

提示注释此函数也可以用于图表（如条形图），但不能用于表格。

提示注释对于其他图表类型，应将图表转换成等效垂直表，这样您就可以轻松解释该函数涉及到的行。

## 示例 - 将 Below 函数结合 RangeAvg 使用

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

#### 图表表达式

概述

Below 函数可用作范围函数的输入。本例在 RangeAvg 中使用了该函数。

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

加载脚本包含：

* 两个数据表分别名为 Monthnames、Sales2013。

加载脚本

```
Monthnames:
LOAD *, Dual(MonthText,MonthNumber) as Month INLINE [
MonthText, MonthNumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];

Sales2013:
Crosstable (MonthText, Sales) LOAD * inline [
Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
Astrida|46|60|70|13|78|20|45|65|78|12|78|22
Betacab|65|56|22|79|12|56|45|24|32|78|55|15
Canutility|77|68|34|91|24|68|57|36|44|90|67|27
Divadip|57|36|44|90|67|27|57|68|47|90|80|94
] (delimiter is '|'); 
```

结果

加载数据并打开工作表。创建新表并将该字段添加为维度：

* Customer

创建以下度量：

* =RangeAvg (Below(Sum(Sales),1,3))

结果表

| Customer | RangeAvg (Below(Sum(Sales),1,3)) |
| --- | --- |
| Totals | - |
| Astrida | 660 |
| Betacab | 720 |
| Canutility | 757 |
| Divadip | - |

在 Below 函数的参数中，offset 设置为 1 并且 count 设置为 3。函数在列段数据（其中有一行）当前行正下方的三行中查找表达式 Sum(Sales) 的结果。这三个值用作 RangeAvg 函数的输入，用于查找所提供的数字范围中的平均值。

## 了解详情

* [Above - 图表函数](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm)
* [Bottom - 图表函数](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Top - 图表函数](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)
* [RangeAvg 脚本和图表功能](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangeavg.htm)