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

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

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

Синтаксис:

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

Аргументы

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

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

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

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

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

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

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

Таблица результатов

| Год | Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | First(Sum(Sales)) | Sum(Sales) | First(Sum(Sales)) | Sum(Sales) | First(Sum(Sales)) | Sum(Sales) | First(Sum(Sales)) |  |
| 2023 | 5000 | 5000 | 4000 | 5000 | 6000 | 5000 | 7000 | 5000 |
| 2024 | 4500 | 4500 | 3250 | 4500 | 6500 | 4500 | 7250 | 4500 |

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

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

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

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

Обзор

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

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

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

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

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

  * `Date`

  * `Product`

  * `Sales`

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

```
Example:
Load * inline [
Date, Product, Sales
2021, Apple, 100
2021, Banana, 150
2021, Carrot, 120
2022, Carrot, 80
2022, Banana, 200
2022, Apple, 110
2023, Carrot, 160
2023, Banana, 300
2023, Apple, 150
];
```

Результаты

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

* `Product`

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

* `Date`

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

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

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

Таблица результатов

| Продукт | 2021 | 2022 | 2023 |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | (Sum(Sales) - First(Sales)) / First(Sales) | Sum(Sales) | (Sum(Sales) - First(Sales)) / First(Sales) | Sum(Sales) | (Sum(Sales) - First(Sales)) / First(Sales) |  |
| Apple | 100 | 0.00% | 110 | 10.00% | 150 | 50.00% |
| Banana | 150 | 0.00% | 200 | 33.33% | 300 | 100.00% |
| Carrot | 120 | 0.00% | 80 | -33.33% | 160 | 33.33% |

Результаты показывают годовые суммы продаж за каждый год и показатели роста за год в процентах по сравнению с объемом продаж за первый год. Например, продажи `Apple` увеличились с начального значения `100` в `2021` до значения `150` в `2023`, что является увеличением на `50%`. Продажи `Carrot` сократились с `120` в `2021` до `80` в `2022`, то есть на `33.33%`.

## Пример. Сценарий применения функции First с использованием суммы диапазона для представления показателей бюджета

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

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

Обзор

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

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

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

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

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

  * `BudgetYear`

  * `BudgetQuarter`

  * `QuarterNo`

  * `BudgetAmount`

  * `Category`

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

```
Example:
Load * inline [
BudgetYear, BudgetQuarter, QuarterNo, BudgetAmount, Category
2023, Q1, 1, 2100, Online
2023, Q2, 2, 2500, Online
2023, Q3, 3, 3100, Online
2023, Q4, 4, 4100, Online
2023, Q1, 1, 5100, Store
2023, Q2, 2, 5500, Store
2023, Q3, 3, 6100, Store
2023, Q4, 4, 7100, Store
2024, Q1, 1, 2300, Online
2024, Q2, 2, 2800, Online
2024, Q3, 3, 3300, Online
2024, Q4, 4, 4400, Online
2024, Q1, 1, 5300, Store
2024, Q2, 2, 5800, Store
2024, Q3, 3, 6300, Store
2024, Q4, 4, 7400, Store
];
```

Результаты

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

* `BudgetYear`

* `Category`

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

* `BudgetQuarter`

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

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

* `=RangeSum(First(Sum(BudgetAmount), 1, QuarterNo))`, чтобы вычислить промежуточный итог бюджетных продаж за каждый квартал путем суммирования диапазона от первого квартала до `QuarterNo`, оценивается для каждого квартала.

Таблица результатов

| BudgetYear<br><br>Категория | Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(BudgetAmount) | RangeSum(First(Sum(BudgetAmount), 1, QuarterNo)) | Sum(BudgetAmount) | RangeSum(First(Sum(BudgetAmount), 1, QuarterNo)) | Sum(BudgetAmount) | RangeSum(First(Sum(BudgetAmount), 1, QuarterNo)) | Sum(BudgetAmount) | RangeSum(First(Sum(BudgetAmount), 1, QuarterNo)) |  |
| (-) 2023 | 7200 | 7200 | 8000 | 15200 | 9200 | 24400 | 11200 | 35600 |
| Режим подключения к сети | 2100 | 2100 | 2500 | 4600 | 3100 | 7700 | 4100 | 11800 |
| Сохранить | 5100 | 5100 | 5500 | 10600 | 6100 | 16700 | 7100 | 23800 |
| (-) 2024 | 7600 | 7600 | 8600 | 16200 | 9600 | 25800 | 11800 | 37600 |
| Режим подключения к сети | 2300 | 2300 | 2800 | 5100 | 3300 | 8400 | 4400 | 12800 |
| Сохранить | 5300 | 5300 | 5800 | 11100 | 6300 | 17400 | 7400 | 24800 |

Результаты показывают показатели бюджета для каждого `Year` и `Category`, а также промежуточный итог по `Quarter`. Например, в `Q2` `2023` `QuarterNo` = `2`. Поэтому выражение функции оценивается как `RangeSum(First(Sum(BudgetAmount), 1, 2))`: суммирует столбцы `BudgetAmount` для `Q1` (`7200`) и `Q2` (`8000`) и возвращает значение `15200`. Результат возвращает итоговое значение столбцов `Sum(BudgetAmount)` для `Q1` и `Q2`. В `2024` для `Category Online` `Sum(BudgetAmount)` для `Q1` возвращает `2300`, а для `Q2` ― `2800`. Поэтому выражение `RangeSum` возвращает `5100`.