# Below — функция диаграммы

Функция Below() оценивает выражение в строке под текущей строкой в сегменте столбца в таблице. Строка, для которой выполняется вычисление, зависит от значения элемента offset, если таковой имеет место, по умолчанию принимается строка непосредственно под текущей строкой. Для диаграмм, за исключением таблиц, функция Below() используется для оценки строки под текущим столбцом в эквиваленте прямой таблицы диаграммы.

Синтаксис:

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

Возвращаемые типы данных: двойное значение

Аргументы

| Аргумент | Описание |
| --- | --- |
| expr | Выражение или поле, содержащее данные для измерения. |
| offset | Если задать значение offset n больше 1, можно переместить оценку выражения на n строк ниже текущей строки.<br><br>Если задать смещение равным 0, оценка выражения будет выполнена в текущей строке.<br><br>Если задать отрицательное число смещения, функция Below будет работать как функция Above с соответствующим положительным числом смещения. |
| count | Если задать для третьего параметра count значение больше 1, функция вернет диапазон значений элемента count: по одному для каждой строки таблицы элемента count, считая вниз от исходной ячейки. В данной форме функция может использоваться в качестве аргумента для любой специальной функции интервала. [Функции над выборкой](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm) |
| TOTAL | Если таблица имеет одно измерение, или если в качестве аргумента используется префикс TOTAL, текущий сегмент столбца всегда равен всему столбцу.<br><br>[Определение объема агрегирования](https://help.qlik.com/ru-RU/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/ru-RU/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/ru-RU/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)`, чтобы сложить значение `Sum(Sales)` для текущего `Customer` со значением для `Customer`, расположенного тремя строками ниже.

* `=If(Sum(Sales)>Below(Sum(Sales)), 'Higher')`, чтобы добавить метку "`Higher`" к клиентам, чьи результаты `Sum(Sales)` больше, чем `Sum(Sales)` клиента в строке ниже.

Результирующая таблица

| 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/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm#Example).

Мера `Below(Sum(Sales))` возвращает NULL для клиента `Divadip`, так как ниже нет строки. Результат для клиента `Canutility` показывает значение `Sum(Sales)` для `Divadip`. Результат для `Betacab` показывает значение `Sum(Sales)` для `Canutility` и так далее.

Для меры `Sum(Sales)+Below(Sum(Sales))` строка для `Astrida` возвращает результат, полученный сложением значений `Sum(Sales)` для строк `Betacab` + `Astrida` (`539+587`). Результат для строки `Betacab` соответствует результату, полученному сложением значений `Sum(Sales)` для `Canutility` + `Betacab` (`539+683`).

У меры мер `Sum(Sales)+Below(Sum(Sales), 3)` аргумент `offset` задан равным `3`, и значение берется в строке, расположенной на три строки ниже текущей. Таким образом, добавляется значение `Sum(Sales)` для текущего элемента `Customer` к значению из элемента `Customer` на три строки ниже. Значения для нижних трех строк `Customer` являются нулевыми.

Мера `IF(Sum(Sales)>Below(Sum(Sales)), 'Higher')` возвращает значение `Higher` для клиента `Astrida`, так как их результаты продаж выше, чем сумма продаж у клиента строкой ниже, `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/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm)
* [Bottom — функция диаграммы](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Top — функция диаграммы](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)
* [RangeAvg Функция скрипта и диаграммы](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangeavg.htm)