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

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

Синтаксис:

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

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

Аргументы

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

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

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

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

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

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

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

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

| Пример | Результат |
| --- | --- |
| `Above( Sum(Sales) )` | Возвращает значение `Sales` для строки, расположенной над текущей строкой |

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

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

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

Обзор

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

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

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

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

  * `Year`

  * `Sales`

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

```
Example:
LOAD * INLINE [
Year, Sales
2019, 1000
2020, 1500
2021, 1200
2022, 1800
2023, 1700
];
```

Результаты

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

* `Year`

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

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

* `=Above(Sum(Sales))`, чтобы найти объем продаж за предыдущий год.

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

* `=RangeSum(Above(Sales, 1, 2))`, чтобы показать скользящую двухлетнюю совокупность продаж за предыдущие два года.

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

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

| Year | Sum(Sales) | Above(Sum(Sales)) | Sum(Sales) - Above(Sum(Sales)) | RangeSum(Above(Sales, 1, 2) | (Sales - Above(Sales)) / Above(Sales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 7200 | - | - | 0 | - |
| 2019 | 1000 | - | - | 0 | - |
| 2020 | 1500 | 1000 | 500 | 1000 | 50.00% |
| 2021 | 1200 | 1500 | -300 | 2500 | -20.00% |
| 2022 | 1800 | 1200 | 600 | 2700 | 50.00% |
| 2023 | 1700 | 1800 | -100 | 3000 | -5.56% |

По результатам можно сравнить значения `Sales` в текущем периоде с предыдущим.

* Мера `Sum(Sales)- Above(Sum(Sales))` возвращает изменение в значениях `Sales`, сравнивая текущий период с предыдущим.

* Мера `RangeSum(Above(Sales, 1, 2))` возвращает сумму двух предыдущих значений `Sales`.

* Мера `(Sales - Above(Sales)) / Above(Sales)` возвращает изменение в `Sales` в виде процента относительно предыдущего периода.

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

Выполните следующие действия.

Создайте линейчатую диаграмму и добавьте это поле как измерение:

* `Year`

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

* `=Sum(Sales) - Above(Sum(Sales))` возвращает изменение от года к году.

Линейчатая диаграмма, демонстрирующая результаты для функции Above.

Линейчатая диаграмма, демонстрирующая результаты для функции Above.

Линейчатая диаграмма, демонстрирующая результаты для функции AboveAbove. ![Линейчатая диаграмма, демонстрирующая изменение суммы продаж от года к году](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-above-example.png)

Использование функции `Above` в линейчатой диаграмме позволяет наглядным образом сравнить изменение продаж за текущий период относительно предыдущего.

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

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

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

Обзор

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

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

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

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

  * `SalesYear`

  * `SalesAmount`

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

```
Example:
LOAD * INLINE [
SalesYear, SalesAmount
2019, 500
2020, 800
2021, 400
2022, 700
2023, 600
];
```

Результаты

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

* `SalesYear`

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

* `=Sum(SalesAmount)`, чтобы агрегировать продажи.

* `=RangeSum(Above(SalesAmount, 0, RowNo()))`, чтобы подсчитать совокупную сумму значений `SalesAmount`.

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

| SalesYear | Sum(SalesAmount) | RangeSum(Above(SalesAmount, 0, RowNo())) |
| --- | --- | --- |
| Totals | 3000 | 0 |
| 2019 | 500 | 500 |
| 2020 | 800 | 1300 |
| 2021 | 400 | 1700 |
| 2022 | 700 | 2400 |
| 2023 | 600 | 3000 |

Результаты показывают, каким образом можно использовать комбинацию функций `RangeSum` и `Above` для получения совокупной суммы.

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

Выполните следующие действия.

Создайте линейчатую диаграмму и добавьте это поле как измерение:

* `SalesYear`

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

* `=RangeSum(Above(SalesAmount, 0, RowNo()))` возвращает совокупное значение продаж.

Линейчатая диаграмма, показывающая совокупное значение продаж по годам

Линейчатая диаграмма, показывающая совокупное значение продаж по годам

Линейчатая диаграмма, показывающая совокупное значение продаж по годам ![Линейчатая диаграмма, показывающая совокупное значение продаж по годовому объему продаж.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-above-example2.png)

## Пример: выражение диаграммы, использующее Above

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

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

Обзор

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

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

* Две таблицы, которые называются `Monthnames` и `Sales2013`.

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

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

Результаты

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

* `Customer`

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

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

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

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

* `=Sum(Sales)+Above(Sum(Sales), 3)`, чтобы сложить значение `Sum(Sales)` для `Customer` со значением для `Customer`, расположенного тремя строками выше.

* `=IF(Sum(Sales)>Above(Sum(Sales)), 'Higher')`, чтобы добавить метку "`Higher`" к клиентам, чьи результаты `Sum(Sales)` больше, чем `Sum(Sales)` клиента в строке выше.

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

| Customer | Sum(Sales) | Above(Sum(Sales)) | Sum(Sales)+Above(Sum(Sales)) | Sum(Sales)+Above(Sum(Sales), 3) | IF(Sum(Sales)&gt;Above(Sum(Sales)), 'Higher') |
| --- | --- | --- | --- | --- | --- |
| Totals | 2566 | - | - | - | - |
| Astrida | 587 | - | - | - | - |
| Betacab | 539 | 587 | 1126 | - | - |
| Canutility | 683 | 539 | 1222 | - | Higher |
| Divadip | 757 | 683 | 1440 | 1344 | Higher |

Мера `Above(Sum(Sales))` возвращает NULL для клиента `Astrida`, так как выше нет строки. Результат для клиента `Betacab` показывает значение `Sum(Sales)` для `Astrida`. Результат для `Canutility` показывает значение `Sum(Sales)` для `Betacab` и так далее.

Для меры `Sum(Sales)+Above(Sum(Sales))` строка для `Betacab` возвращает результат, полученный сложением значений `Sum(Sales)` для строк `Betacab` + `Astrida` (`539+587`). Результат для строки `Canutility` соответствует результату, полученному сложением значений `Sum(Sales)` для `Canutility` + `Betacab` (`683+539`).

Мера `Sum(Sales)+Above(Sum(Sales), 3)` имеет аргумент `offset`, равный `3`. Берется значение в строке, расположенной на 3 строки выше текущей строки. Значение `Sum(Sales)` для текущего значения `Customer` добавляется к значению для `Customer`, расположенному тремя строками выше. Например, `Sum(Sales)` для `Divadip` добавляется к `Sum(Sales)` для `Astrida` – клиента, который находится тремя строками выше `Divadip`. Значения, возвращенные для первых трех строк `Customer`, являются нулевыми.

Мера `IF(Sum(Sales)>Above(Sum(Sales)), 'Higher')` возвращает значение `Higher` для клиентов `Canutility` и `Divadip`, потому что их результаты продаж выше, чем сумма продаж для клиента в строке выше, `Betacab` и `Canutility` соответственно.

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

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

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

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

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

Обзор

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

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

* Три таблицы данных, которые называются Monthnames, Sales2013 и Product.

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

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

Product:
LOAD * inline [
Customer|Product|OrderNumber|UnitSales|UnitPrice
Astrida|AA|1|4|16
Astrida|AA|7|10|15
Astrida|BB|4|9|9
Betacab|CC|6|5|10
Betacab|AA|5|2|20
Betacab|BB||| 25
Canutility|AA|||15
Canutility|CC| ||19
Divadip|CC|2|4|16
Divadip|DD|3|1|25
] (delimiter is '|');
```

Результаты

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

* Customer

* Product

* Month

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

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

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

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

| Customer | Product | Month | Sum(Sales) | Above(Sum(Sales)) |
| --- | --- | --- | --- | --- |
| Totals | - | - | 2566 | - |
| Astrida | AA | Jan | 46 | - |
| Astrida | AA | Feb | 60 | 46 |
| Astrida | AA | Mar | 70 | 60 |
| Astrida | AA | Apr | 13 | 70 |
| Astrida | AA | May | 78 | 13 |
| Astrida | AA | Jun | 20 | 78 |
| Astrida | AA | Jul | 45 | 20 |
| Astrida | AA | Aug | 65 | 45 |
| Astrida | AA | Sep | 78 | 65 |
| Astrida | AA | Oct | 12 | 78 |
| Astrida | AA | Nov | 78 | 12 |
| Astrida | AA | Dec | 22 | 78 |
| Astrida | BB | Jan | 46 | - |
| Astrida | BB | Feb | 60 | 46 |

Для диаграмм с несколькими измерениями результаты выражений, содержащих функции Above, Below, Top и Bottom, зависят от порядка, в котором Qlik Sense сортирует измерения столбцов. Qlik Sense оценивает функции на основе сегментов столбца, полученных из измерения, отсортированного последним. Контроль за порядком сортировки столбцов осуществляется на панели свойств под элементом Сортировка. Этот порядок не обязательно соответствует порядку отображения столбцов в таблице.

В результирующей таблице, последним отсортированным измерением является Month, поэтому функция Above выполняет оценку по месяцам. Существует серия результатов для каждого значения Product для каждого месяца (от Jan до Dec) — сегмент столбца. После этого следует серия для следующего сегмента в столбце, для каждого значения Month и следующего значения Product. Будет указан сегмент столбца для каждого значения Customer для каждого элемента Product.

## Пример. Сценарий Above с использованием другого порядка сортировки

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

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

Обзор

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

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

* Три таблицы данных, которые называются Monthnames, Sales2013 и Product.

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

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

Product:
LOAD * inline [
Customer|Product|OrderNumber|UnitSales|UnitPrice
Astrida|AA|1|4|16
Astrida|AA|7|10|15
Astrida|BB|4|9|9
Betacab|CC|6|5|10
Betacab|AA|5|2|20
Betacab|BB||| 25
Canutility|AA|||15
Canutility|CC| ||19
Divadip|CC|2|4|16
Divadip|DD|3|1|25
] (delimiter is '|');
```

Результаты

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

* Customer

* Product

* Month

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

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

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

Изменить порядок сортировки в таблице можно на панели свойств. Выберите Сортировка, а затем перетащите измерение Product на третью позицию в порядке сортировки.

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

| Customer | Product | Month | Sum(Sales) | Above(Sum(Sales)) |
| --- | --- | --- | --- | --- |
| Totals | - | - | 2566 | - |
| Astrida | AA | Jan | 46 | - |
| Astrida | BB | Jan | 46 | 46 |
| Astrida | AA | Feb | 60 | - |
| Astrida | BB | Feb | 60 | 60 |
| Astrida | AA | Mar | 70 | - |
| Astrida | BB | Mar | 70 | 70 |
| Astrida | AA | Apr | 13 | - |
| Astrida | BB | Apr | 13 | 13 |
| Astrida | AA | May | 78 | - |
| Astrida | BB | May | 78 | 78 |
| Astrida | AA | Jun | 20 | - |
| Astrida | BB | Jun | 20 | 20 |
| Astrida | AA | Jul | 45 | - |
| Astrida | BB | Jul | 45 | 45 |

В таблице результатов последним отсортированным измерением является Product. Функция Above оценивается для каждого элемента Product, и поскольку существует только два продукта, AA и BB, в каждой серии будет выдан только один результат, не являющийся нулевым. В строке BB для месяца Jan результат Above(Sum(Sales)) равен 46. Для строки AA значение нулевое. Значение в каждой строке AA для любого месяца всегда будет нулевым, поскольку отсутствует значение элемента Product над строкой AA. Вторая серия оценивается в строках AA и BB для месяца Feb для значения Customer, Astrida. Если оценка для Astrida выполняется по всем месяцам, эта последовательность повторяется для второго клиента Betacab и так далее.

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

## Пример. Использование функции Above с RangeAvg

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

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

Обзор

Функцию Above можно использовать как ввод в функции над выборкой. В этом примере в RangeAvg используется функция.

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

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

* Три таблицы данных, которые называются Monthnames, Sales2013 и Product.

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

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

Product:
LOAD * inline [
Customer|Product|OrderNumber|UnitSales|UnitPrice
Astrida|AA|1|4|16
Astrida|AA|7|10|15
Astrida|BB|4|9|9
Betacab|CC|6|5|10
Betacab|AA|5|2|20
Betacab|BB||| 25
Canutility|AA|||15
Canutility|CC| ||19
Divadip|CC|2|4|16
Divadip|DD|3|1|25
] (delimiter is '|');
```

Результаты

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

* Customer

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

* =RangeAvg (Above(Sum(Sales),1,3))

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

| Customer | RangeAvg (Above(Sum(Sales),1,3)) |
| --- | --- |
| Totals | - |
| Astrida | - |
| Betacab | 587 |
| Canutility | 563 |
| Divadip | 603 |

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

## Подробнее

* [Below — функция диаграммы](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/below.htm)
* [Bottom — функция диаграммы](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Top — функция диаграммы](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)
* [RangeAvg — функция скриптa и диаграммы](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangeavg.htm)