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

Функция Last() возвращает значение выражения, оцененного со значениями измерения сводной таблицы по мере их отображения в последнем столбце текущего сегмента строки сводной таблицы. Данная функция возвращает значение NULL во всех типах диаграмм, кроме сводных таблиц.

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

Синтаксис:

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

Аргументы

| Аргумент | Описание |
| --- | --- |
| expr | Выражение или поле, содержащее данные для измерения. |
| offset | Если задать значение offset n больше 1, можно переместить оценку выражения на n столбцов влево от последнего столбца.<br><br>Если задать смещение равным 0, оценка выражения будет выполнена в последнем столбце текущего сегмента строки.<br><br>Если задать отрицательное число смещения, функция Last будет работать как функция First с соответствующим положительным числом смещения. |
| count | Если задать для третьего параметра count значение больше 1, функция вернет диапазон значений элемента count, по одному для каждого столбца таблицы элемента, считая влево от исходной ячейки. |
| TOTAL | Если таблица имеет одно измерение, или если в качестве аргумента используется префикс TOTAL, текущий сегмент столбца всегда равен всему столбцу.<br><br>[Определение объема агрегирования](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

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

Пример: выражения диаграммы

| Пример | Результат |
| --- | --- |
| `Last( Sum(Sales ))` | Возвращает сумму `Sales` из последнего столбца текущего сегмента строки. |
| `Last( Sum(Sales ), 2)` | Возвращает сумму `Sales` из столбца, который находится в двух столбцах слева от последнего столбца в текущем сегменте строки. |
| `Last( Total Sum( Sales ))` | Возвращает итоговую сумму `Sales` из последнего столбца текущего сегмента строки. |
| `RangeAvg (Last(Sum(x),1,5))` | Возвращает среднее значение результатов функции `sum(x)` в пяти крайних правых столбцах текущего сегмента строки. |

## Пример. Основы использования функции Last

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

#### Выражение диаграммы

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Следующие поля в таблице данных:

  * `Year`

  * `Quarter`

  * `Sales`

Скрипт загрузки

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

Результаты

Загрузите данные и откройте лист. Создайте новую сводную таблицу и добавьте это поле как измерение:

* `Year`

Добавьте это поле в качестве измерения столбца:

* `Quarter`

Создайте следующие меры:

* `=Sum(Sales)`, чтобы вычислить сумму продаж.

* `=Last(Sum(Sales))`, чтобы вычислить сумму продаж в последнем столбце текущего сегмента строки.

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

| Год | Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | Последний(Сумма(Продажи)) | Sum(Sales) | Последний(Сумма(Продажи)) | Sum(Sales) | Последний(Сумма(Продажи)) | Sum(Sales) | Последний(Сумма(Продажи)) |  |
| 2023 | 5000 | 7000 | 4000 | 7000 | 6000 | 7000 | 7000 | 7000 |
| 2024 | 4500 | 7250 | 3250 | 7250 | 6500 | 7250 | 7250 | 7250 |

Результаты показывают, что функция `Last` возвращает сумму значений продаж для последнего столбца каждого сегмента строки за каждый квартал. Например, в `Q1` значение `Sum(Sales)` для этого периода равно `5000`. Значение `Last(Sum(Sales)` для `Q1` равно `7000` и также является значением для `Sum(Sales)` в `Q4`, то есть значением последнего столбца текущей строки, `2023`.

## Пример. Сценарий использования функции Last

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

#### Выражение диаграммы

Обзор

Набор данных содержит показатели продаж для различных товаров за трехмесячный период. Компания хочет представить общий объем продаж за текущий год и рост продаж по сравнению с последним (самым недавним) объемом продаж в этом периоде.

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Следующие поля в таблице данных:

  * `Date`

  * `Product`

  * `Sales`

Скрипт загрузки

```
Example:
Load * inline [
Date, Product, Sales
2024-01-01, Apple, 100
2024-01-01, Banana, 150
2024-01-01, Carrot, 120
2024-02-01, Carrot, 80
2024-02-01, Banana, 200
2024-02-01, Apple, 110
2024-03-01, Carrot, 160
2024-03-01, Banana, 300
2024-03-01, Apple, 150
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую сводную таблицу и добавьте это поле как измерение:

* ` Product
                                       `

Добавьте это поле в качестве измерения столбца:

* `Date`

Создайте следующие меры:

* `=Sum(Sales)`, чтобы рассчитать годовой объем продаж.

* `=(Last(Sum(Sales)) - Sum(Sales)) / Sum(Sales)`, чтобы рассчитать рост продаж с текущего периода до последнего периода. Чтобы показать это значение в процентах, в разделе Форматирование чисел выберите Число &gt; Простое форматирование &gt; 12,34%.

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

| Продукт | 2024-01-01 | 2024-02-01 | 2024-03-01 |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | (Последний(Сумма(Продажи)) - Сумма(Продажи)) / Сумма(Продажи)) | Sum(Sales) | (Last(Sum(Sales)) - Sum(Sales)) / Sum(Sales) | Sum(Sales) | (Last(Sum(Sales)) - Sum(Sales)) / Sum(Sales) |  |
| Apple | 100 | 50.00% | 110 | 36.36% | 150 | 0.00% |
| Банан | 150 | 100,00% | 200 | 50,00% | 300 | 0,00% |
| Морковь | 120 | 33.33% | 80 | 100,00% | 160 | 0,00% |

В этом примере показан рост продаж с начала периода продаж до последнего периода. Например, в первом периоде `2024-01-01` продажи `Apple` составляли `100` по сравнению с последним объемом продаж `150` за период `2024-03-01`. Это показывает увеличение на `50%`.

## Пример. Использование функции Last для расчета отклонения от бюджета

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

#### Выражение диаграммы

Обзор

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

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Следующие поля в таблице данных:

  * `Year`

  * `Quarter`

  * `Budget`

Скрипт загрузки

```
Example:
Load * inline [
Year, Quarter, Budget
2023, Q1, 1200
2023, Q2, 1100
2023, Q3, 1300
2023, Q4, 1400
2024, Q1, 1550
2024, Q2, 1230
2024, Q3, 1400
2024, Q4, 1600
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую сводную таблицу и добавьте это поле как измерение:

* ` Year
                                       `

Добавьте это поле в качестве измерения столбца:

* `Quarter`

Создайте следующие меры:

* `=Sum(Budget)`, чтобы вычислить бюджет на квартал.

* `=Sum(Budget) - RangeAvg(Last(Budget, 1, 4))`, чтобы рассчитать отклонение суммы `Budget` за текущий период от среднего квартального бюджета за год.

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

| Год | Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Сумма(Бюджет) | Сумма(Бюджет) - СреднееПоДиапазону(Последние(Бюджет, 1, 4)) | Сумма(Бюджет) | Sum(Budget) - RangeAvg(Last(Budget, 1, 4)) | Sum(Budget) | Sum(Budget) - RangeAvg(Last(Budget, 1, 4)) | Sum(Budget) | Sum(Budget) - RangeAvg(Last(Budget, 1, 4)) |  |
| 2023 | 1200 | -50 | 1100 | -150 | 1300 | 50 | 1400 | 150 |
| 2024 | 1550 | 105 | 1230 | -215 | 1400 | -45 | 1600 | 155 |

С помощью функции `Last` можно посмотреть, как изменяется сумма бюджета на квартал по сравнению со средним квартальным бюджетом. Например, в `2023` общий бюджет на год составляет `5000` (`1200 + 1100 + 1300 + 1400`), следовательно, средний квартальный бюджет составляет `1250`. Поскольку сумма бюджета для `Q1` составляет `1200`, она на `50` меньше по сравнению со средним квартальным бюджетом `1250`, тогда как отклонение бюджета для `Q4` составляет `150` по сравнению со средним квартальным бюджетом.