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

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

Синтаксис:

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

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

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

Аргументы

| Аргумент | Описание |
| --- | --- |
| expr | Выражение или поле, содержащее данные для измерения. |
| offset | Если задать значение offset n больше 1, можно переместить оценку выражения на n столбцов влево от текущего столбца.<br><br>Если задать смещение равным 0, оценка выражения будет выполнена в текущем столбце.<br><br>Если задать отрицательное число смещения, функция Before будет работать как функция After с соответствующим положительным числом смещения. |
| 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) |

В первом столбце сегмента строки будет возвращено значение NULL, так как перед этим столбцом нет других столбцов.

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

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

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

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/before.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)`, чтобы вычислить сумму продаж.

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

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

| Год | Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | До(Сумма(Продажи)) | Sum(Sales) | До(Сумма(Продажи)) | Sum(Sales) | До(Сумма(Продажи)) | Sum(Sales) | До(Сумма(Продажи)) |  |
| 2023 | 5000 | - | 4000 | 5000 | 6000 | 4000 | 7000 | 6000 |

Результаты показывают, как функция `Before` возвращает значение предыдущего столбца, который находится непосредственно слева от столбца `Sum(Sales)`, для каждого `Quarter`. Например, в Q4 значение `Sum(Sales)` для этого периода равно `7000`. Функция `Before` для `Q4` возвращает `6000`, то есть значение столбца, расположенного непосредственно слева от `Sum(Sales)` для `Q4`, а именно `Sum(Sales)` для `Q3`.

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

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

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

Обзор

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

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

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

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

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

  * `Year`

  * `Sales`

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

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

Результаты

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

* ` Year
                                       `

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

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

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

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

| 2021 | 2022 | 2023 | 2024 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | (Сумма(Продажи) - До(Сумма(Продажи)))/До(Сумма(Продажи)) | Sum(Sales) | (Sum(Sales) - Before(Sum(Sales)))/Before(Sum(Sales)) | Sum(Sales) | (Sum(Sales) - Before(Sum(Sales)))/Before(Sum(Sales)) | Sum(Sales) | (Sum(Sales) - Before(Sum(Sales)))/Before(Sum(Sales)) |
| 1300 | - | 1800 | 38.46% | 2000 | 11.11% | 2100 | 5.00% |

Функция `Before` возвращает рост за год на основе данных о продажах за предыдущий год. Например, сумма продаж за `2022` была на `38.46%` выше, чем `Sum(Sales)` за `2021`.

Примечание к подсказкеФункцию `After` также можно использовать для выполнения такого же расчета роста продаж в этом сценарии. Если задать отрицательное значение смещения, функция `After` будет работать как функция `Before` с соответствующим положительным значением смещения. Например, следующее выражение, использующее функцию `After` (с отрицательным значением смещения `-1`), возвращает те же результаты годового роста продаж, что и функция `Before`:   
`=(Sum(Sales)-After(Sum(Sales),-1))/(After(Sum(Sales),-1))`.