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

Функция Column() возвращает значение, обнаруженное в столбце, соответствующем элементу ColumnNo, в прямую таблицу без учета измерений. Например, элемент Column(2) возвращает значение второго столбца мер.

Синтаксис:

Column(ColumnNo)

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

Аргументы

| Аргумент | Описание |
| --- | --- |
| ColumnNo | Номер столбца в таблице, содержащей меру.<br><br>Примечание к информацииФункция Column() игнорирует столбцы измерений. |

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

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

* Если элемент ColumnNo ссылается на столбец, для которого нет мер, возвращается значение NULL.

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

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

| Пример | Результат |
| --- | --- |
| `Column(1)/Column(2)` | Возвращает значение первой меры, деленное на значение второй меры в диаграмме. |

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

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

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

Обзор

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

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

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

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

  * `Customer`

  * `Product`

  * `UnitSales`

  * `UnitPrice`

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

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

Результаты

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

* `Customer`

* `Product`

* `UnitSales`

* `UnitPrice`

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

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

* `=Sum(TOTAL UnitPrice*UnitSales)`, чтобы найти общий объем продаж.

* `=100*Column(1)/Column(2)`, чтобы вычислить процентное соотношение продаж к общему объему продаж.

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

| Customer | Product | UnitPrice | UnitSales | Sum(UnitPrice\*UnitSales) | Sum(TOTAL UnitPrice\*UnitSales) | 100\*Column(1)/Column(2) |
| --- | --- | --- | --- | --- | --- | --- |
| Totals |  |  |  | 505 | 505 | 100.00 |
| Astrida | AA | ​15 | 10 | 150 | 505 | 29.70 |
| Astrida | AA | ​16 | 4 | 64 | 505 | 12.67 |
| Astrida | BB | ​9 | 9 | 81 | 505 | 16.04 |
| Betacab | BB | ​10 | 5 | 50 | 505 | 9.90 |
| Betacab | CC | ​20 | 2 | 40 | 505 | 7.92 |
| Betacab | DD | ​25 |  | 0 | 505 | 0.00 |
| Canutility | AA | ​15 | 8 | 120 | 505 | 23.76 |
| Canutility | CC | ​19 |  | 0 | 505 | 0.00 |

Эти результаты показывают, что анализ данных можно выполнить с помощью ссылки на позицию столбца и используя этот алгоритм в выражении меры. Например, мера `100*Column(1)/Column(2)` берет значение из первой меры, `Sum(UnitPrice*UnitSales)`, делит его на значение из второй меры, `Sum(TOTAL UnitPrice*UnitSales)`, а затем умножает результат на `100`.

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

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

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

Обзор

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

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

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

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

  * `Month`

  * `Sales`

  * `Expenses`

  * `Profit`

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

```
Example:
LOAD * INLINE [
Month, Sales, Expenses, Profit
Jan, 10000, 4000, 6000
Feb, 12000, 4500, 7500
Mar, 15000, 5000, 10000
Apr, 11000, 4200, 6800
May, 13000, 4800, 8200
Jun, 14000, 4700, 9300
Jul, 16000, 5100, 10900
Aug, 12500, 4300, 8200
Sep, 15500, 4900, 10600
Oct, 13500, 4600, 8900
];
```

Результаты

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

* `Product`

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

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

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

* `=Column(1) - Column(2)`, чтобы вычислить разницу между значениями в столбцах продаж и расходов.

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

| Month | Sum(Sales) | Sum(Expenses) | Column(1) - Column(2) |
| --- | --- | --- | --- |
| Totals | 132500 | 46100 | 86400 |
| Jan | 10000 | 4000 | 6000 |
| Feb | 12000 | 4500 | 7500 |
| Mar | 15000 | 5000 | 10000 |
| Apr | 11000 | 4200 | 6800 |
| May | 13000 | 4800 | 8200 |
| Jun | 14000 | 4700 | 9300 |
| Jul | 16000 | 5100 | 10900 |
| Aug | 12500 | 4300 | 8200 |
| Sep | 15500 | 4900 | 8200 |
| Oct | 13500 | 4600 | 8900 |

Результаты в таблице показывают, как можно использовать функцию `Column` для анализа данных. Мера `Column(1) - Column(2)` возвращает сумму продаж, оставшуюся после вычитания расходов (столбец второй меры).

## Пример. Column Сценарий анализа данных о продажах

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

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

Обзор

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

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

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

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

  * `ProductName`

  * `Q1_Sales`

  * `Q2_Sales`

  * `Q3_Sales`

  * `Q4_Sales`

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

```
Example:
LOAD * INLINE [
ProductName, Q1_Sales, Q2_Sales, Q3_Sales, Q4_Sales
Product A, 1200, 1500, 1100, 1300
Product B, 1400, 1600, 1200, 1450
Product C, 1350, 1700, 1150, 1550
Product D, 1250, 1550, 1300, 1500
];
```

Результаты

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

* `ProductName`

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

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

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

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

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

* `=Column(1) - Column(2)`, чтобы рассчитать отношение `Q1_Sales` к `Q2_Sales`.

* `=(Column(2) - Column(1)) / Column(1)`, чтобы рассчитать темп роста между двумя периодами.

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

| ProductName | Sum(Q1\_Sales) | Sum(Q2\_Sales) | Sum(Q3\_Sales) | Sum(Q4\_Sales) | Column(1) - Column(2) | (Column(2) - Column(1)) / Column(1) |
| --- | --- | --- | --- | --- | --- | --- |
| Totals | 5200 | 6350 | 4750 | 5800 | ​0.81889763779528 | 0.22115384615385 |
| Product A | 1200 | 1500 | 1100 | 1300 | 0.8 | 0.25 |
| Product B | 1400 | 1600 | 1200 | 1450 | 0.875 | ​0.14285714285714 |
| Product C | 1350 | 1700 | 1150 | 1550 | 0.79411764705882 | 0.25925925925926 |
| Product D | 1250 | 1550 | 1300 | 1500 | ​0.80645161290323 | 0.24 |

Результаты показывают, как можно использовать функцию `Column` для анализа данных.