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

Max() находит наибольшее значение агрегированных данных. Если указать rank n, можно найти наибольшее n-ное значение.

Примечание к подсказкеДавайте также посмотрим на элементы FirstSortedValue и RangeMax, которые имеют одинаковую функциональность в отношении функции Max.

Синтаксис:

Max([{SetExpression}] [TOTAL [&lt;fld {,fld}&gt;]] expr [,rank])

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

Аргументы

| Аргумент | Описание |
| --- | --- |
| expr | Выражение или поле, содержащее данные для измерения. |
| rank | По умолчанию значение rank — 1, что соответствует наибольшему значению. При указании для rank значения 2 будет возвращено второе наибольшее значение. Если rank имеет значение 3, будет возвращено третье наибольшее значение, и т. д. |
| SetExpression | По умолчанию функция агрегирования агрегирует множество возможных записей, определенных выборкой. Альтернативный набор записей может быть определен выражением анализа множества. |
| TOTAL | Если слово TOTAL стоит перед аргументами функции, вычисление выполняется по всем возможным значениям, указанным в текущих выборках, а не только в тех, которые относятся к значению текущего измерения, т. е. измерения диаграммы игнорируются.<br><br>При использовании выражения TOTAL [&lt;fld {.fld}&gt;], где префикс TOTAL предшествует списку из одного или нескольких имен полей, выступающих в качестве подмножества переменных измерения диаграммы, создается подмножество всех возможных значений.<br><br>[Определение объема агрегирования](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

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

| Пример | Результат |
| --- | --- |
| `Max(UnitSales)` | Возвращает наибольшее значение в поле `UnitSales`. |
| `Max(UnitSales*UnitPrice)` Значение суммы заказа вычисляется путем умножения количества проданных единиц в элементе (`UnitSales`) на стоимость единицы. | Возвращает наибольшее значение, полученное в результате вычисления всех возможных значений произведения (`UnitSales`)\*(`UnitPrice`). |
| `Max(UnitSales, 2)` | Возвращает значение для второго наибольшего значения. |
| `Max(TOTAL UnitSales)` | Квалификатор `TOTAL` означает, что обнаружено наибольшее возможное значение без учета измерений диаграммы. Для диаграммы с измерением `Customer` квалификатор `TOTAL` обеспечит возврат максимального значения по всему набору данных вместо максимального значения `UnitSales` для каждого клиента. |
| `Max({1} TOTAL UnitSales)` | Выражение анализа множеств `{1}` определяет набор записей для оценки в качестве `ALL`, независимо от выборки. Например, если выбран конкретный клиент, все равно будет возвращено максимальное значение `UnitSales` по всему набору данных. |

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

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

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

Обзор

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

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

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

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

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

  * `Customer`

  * `UnitSales`

  * `UnitPrice`

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

```
Example:
LOAD * inline [
Customer|UnitSales|UnitPrice
Astrida|4|16
Astrida|10|15
Astrida|9|9
Betacab|5|10
Betacab|2|20
Betacab||25
Canutility|8|15
Canutility||19
] (delimiter is '|');
```

Результаты

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

* `Customer`

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

* `=Max(UnitSales)`, чтобы вычислить максимальное значение `UnitSales`.

* `=Max(UnitSales*UnitPrice)`, чтобы вычислить максимальное значение после умножения `UnitSales` на `UnitPrice` в каждой строке.

* `=Max(UnitSales, 2)`, чтобы вычислить второе наибольшее значение.

* `=Max(TOTAL UnitSales)`, чтобы вычислить наибольший итог независимо от измерения диаграммы.

* `=Max({1} TOTAL UnitSales)`, чтобы вычислить наибольший итог, независимо от всех выборок.

Results table

| Customer | Max(UnitSales) | Max(UnitSales\*UnitPrice) | Max(UnitSales, 2) | Max(TOTAL UnitSales) | Max({1} TOTAL UnitSales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 10 | 150 | 9 | 10 | 10 |
| Astrida | 10 | 150 | 9 | 10 | 10 |
| Betacab | 5 | 50 | 2 | 10 | 10 |
| Canutility | 8 | 120 | - | 10 | 10 |

В этом примере обратите внимание на следующие данные:

* В первой мере (`Max(UnitSales)`) наибольшее значение `UnitSales` для клиента `Astrida` составляет `10`. Ячейка `Totals` в этом столбце возвращает значение `10`, потому что оно также является самым высоким значением `UnitSales` во всем наборе данных.

* Во второй мере (`Max(UnitSales*UnitPrice)`) `150` возвращается для `Astrida`. Это наибольшее значение для данного клиента при умножении `UnitSales` на `UnitPrice`. Ячейка `Totals` в этом столбце тоже возвращает значение `150`, потому что оно также является самым высоким вычисленным значением во всем наборе данных.

* В третьей мере (`Max(UnitSales, 2)`) второе наибольшее значение `UnitSales` для клиента `Astrida` составляет `9`. Кроме того, это значение является вторым по величине среди всех трех клиентов, поэтому строка `Totals` также возвращает `9`.

* Четвертая мера (`Max(TOTAL UnitSales)`) возвращает значение `10`. Это наибольшее значение, найденное независимо от измерения customer (клиент), поэтому все строки возвращают одно и то же значение. Однако если выбрать клиента `Betacab`, таблица вернет только значения для этого клиента, в данном случае `5`, потому что это наибольшее значение `UnitSales` среди всех продуктов для `Betacab`.

* Пятая мера (`Max({1} TOTAL UnitSales)`) возвращает значение `10` независимо от выбранного значения `Customer`, потому что используется модифицированное множество `{1}`. Например, если выбрать `Betacab`, этот столбец будет по-прежнему возвращать значение `10`.

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

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

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

Обзор

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

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

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

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

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

  * `Product`

  * `Sales`

  * `Month`

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

```
Example:
Load * inline [
Product,Sales,Month
A, 500, 2024-01-01
A, 700, 2024-02-01
A, 600, 2024-03-01
B, 300, 2024-01-01
B, 800, 2024-02-01
B, 450, 2024-03-01
C, 550, 2024-01-01
C, 620, 2024-02-01
C, 710, 2024-03-01
];
```

Результаты

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

* `Product`

* `Month`

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

* `=If(Sales = Max(TOTAL <Product> Sales), Sales)`, чтобы вычислить максимальный объем продаж для каждого продукта. На панели свойств меры выберите Дополнения &gt; Обработка данных. Снимите флажок Включить нулевые значения, чтобы удалить все нулевые значения.

Results table

| Product | Month | If(Sales = Max(TOTAL &lt;Product&gt; Sales), Sales) |
| --- | --- | --- |
| A | 2024-02-01 | 700 |
| B | 2024-02-01 | 800 |
| C | 2024-03-01 | 710 |

Результаты меры возвращают максимальную сумму продаж для каждого продукта и месяц, в котором это значение было достигнуто. Например, для `Product B` были самые высокие продажи (`800`) в `2024-02-01`.

## Подробнее

* [FirstSortedValue — функция диаграммы](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/firstsortedvalue.htm)
* [RangeMax Функция скрипта и диаграммы](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangemax.htm)
* [Анализ множеств](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Определение объема агрегирования](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)