# Bottom

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

Синтаксис:

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

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

Аргументы:

* expr: Выражение или поле, содержащее данные для измерения.

* offset: если offset n больше 0, оценка выражения перемещается на n строк выше текущей строки. Если задать смещение равным 0, оценка выражения будет выполнена в текущей строке. Если смещение является отрицательным, функция Above работает аналогично функции Below с соответствующим положительным смещением.

* count: если третий аргумент count больше 1, функция вернет диапазон значений count — по одному для каждой строки count, считая вверх от исходной ячейки. В данной форме функция может использоваться в качестве аргумента для любой специальной функции интервала. [Функции над выборкой](https://help.qlik.com/ru-RU/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm)

* TOTAL: Если таблица имеет одно измерение, или если в качестве аргумента используется префикс TOTAL, текущий сегмент столбца всегда равен всему столбцу.

  [Определение объема агрегирования](https://help.qlik.com/ru-RU/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm)

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

Примечание к информацииЕсли таблица или эквивалент таблицы имеют несколько вертикальных измерений, текущий сегмент столбца будет включать только строки с теми же значениями, что и текущая строка во всех столбцах измерений, кроме столбца с последним измерением в межполевом порядке сортировки.

Ограничения:

* Рекурсивные вызовы возвращают значение NULL.

* Сортировка по значениям y на диаграммах или сортировка по столбцам выражений в таблицах не допускается, если в любом из выражений диаграммы используется эта функция диаграмм. Данные возможности сортировки автоматически отключаются. Когда используется эта функция диаграмм в визуализации или таблице, сортировка визуализации будет возвращена к сортировке на входе этой функции.

Примеры и результаты:

Пример 1:

Пример результирующей таблицы

| Customer | Sum(Sales) | Bottom(Sum(Sales)) | Sum(Sales) + Bottom(Sum(Sales)) | Bottom offset 3 |
| --- | --- | --- | --- | --- |
| - | 2566 | 757 | 3323 | 3105 |
| Astrida | 587 | 757 | 1344 | 1126 |
| Betacab | 539 | 757 | 1296 | 1078 |
| Canutility | 683 | 757 | 1440 | 1222 |
| Divadip | 757 | 757 | 1514 | 1296 |

В представлении табличной диаграммы, показанной в этом примере, таблица создана из измерения Customer и мер: `Sum(Sales)` и `Bottom(Sum(Sales))`.

Столбец Bottom(Sum(Sales)) возвращает значение 757 для всех строк, поскольку это значение нижней строки: Divadip.

В таблице также показаны более сложные меры: одна, созданная из элемента `Sum(Sales)+Bottom(Sum(Sales))`, а другая, помеченная как Bottom offset 3, созданная с помощью выражения `Sum(Sales)+Bottom(Sum(Sales), 3)`, и имеющая аргумент offset, установленный на 3. Таким образом добавляется значение Sum(Sales) для текущей строки к значению из третьей строки от нижней строки, т. е. текущая строка плюс значение для элементаBetacab.

Пример 2:

В представлениях диаграмм таблиц, показанных в этом примере, к диаграммам добавлено больше измерений: Month и Product. Для диаграмм с несколькими измерениями результаты выражений, содержащих функции Above, Below, Top и Bottom, зависят от порядка, в котором измерения столбцов сортируются QlikView. Программа QlikView оценивает функции на основе сегментов столбца, полученных из измерения, отсортированного последним. Контроль за порядком сортировки столбцов осуществляется при помощи параметра Сортировка. Этот порядок не обязательно соответствует порядку отображения столбцов в таблице.

В первой таблице выражение оценивается на основе элемента Month, а во второй таблице оно основывается на элементе Product. Мера End value содержит выражение `Bottom(Sum(Sales))`. Нижней строкой для измерения Month является Dec, а значением для Dec, как и для обоих значений элемента Product показанных в таблице, является 22. (Некоторые строки не отображаются, чтобы сэкономить место).

Пример первой результирующей таблицы

| Customer | Product | Month | Sum(Sales) | End value |
| --- | --- | --- | --- | --- |
| - | - | - | **2566** | - |
| Astrida | AA | Jan | 46 | 22 |
| Astrida | AA | Feb | 60 | 22 |
| Astrida | AA | Mar | 70 | 22 |
| ... | ... | ... | ... | ... |
| Astrida | AA | Sep | 78 | 22 |
| Astrida | AA | Oct | 12 | 22 |
| Astrida | AA | Nov | 78 | 22 |
| Astrida | AA | Dec | 22 | 22 |
| Astrida | BB | Jan | 46 | 22 |

Пример второй результирующей таблицы

| Customer | Product | Month | Sum(Sales) | End value |
| --- | --- | --- | --- | --- |
|  |  |  | **2566** | - |
| Astrida | AA | Jan | 46 | 46 |
| Astrida | BB | Jan | 46 | 46 |
| Astrida | AA | Feb | 60 | 60 |
| Astrida | BB | Feb | 60 | 60 |
| Astrida | AA | Mar | 70 | 70 |
| Astrida | BB | Mar | 70 | 70 |
| Astrida | AA | Apr | 13 | 13 |
| Astrida | BB | Apr | 13 | 13 |

Дополнительную информацию см. в примере 2 для функции Above.

Пример 3:

Функцию Bottom можно использовать как входное значение функции над выборкой. Например: `RangeAvg 
 (Bottom(Sum(Sales),1,3))`.

В аргументах для функции Bottom() для элемента offset задано значение 1, а для элемента count задано значение 3. Функция находит результаты выражения Sum(Sales) в трех строках, начиная со строки над нижней строкой в сегменте столбца (поскольку offset=1) и в двух строках над ней (если есть строка). Эти три значения используются как ввод в функцию RangeAvg(), которая находит среднее значение в предоставленном диапазоне чисел.

Таблица с элементом Customer в виде измерения выдает следующие результаты для выражения RangeAvg().

Пример результирующей таблицы

| Customer | RangeAvg (Bottom(Sum(Sales),1,3)) |
| --- | --- |
| Astrida | 659.67 |
| Betacab | 659.67 |
| Canutility | 659.67 |
| Divadip | 659.67 |

**Данные, используемые в примерах:**

`Monthnames:` `LOAD * INLINE [` `Month, 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 (Month, 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 '|');`

Чтобы выполнить сортировку месяцев в правильном порядке, при создании диаграмм перейдите на вкладку Sort в свойствах диаграммы и установите флажок Expression для параметра Sort by. В поле выражения напишите `Monthnumber`.

## Подробнее

* [Top](https://help.qlik.com/ru-RU/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/InterRecordFunctions/top.htm)