# AutoNumber

Этот оператор создает уникальное значение целого для каждого определенного оцененного значения поля, возникающего в процессе выполнения скрипта.

Также можно использовать функцию [autonumber Функция скрипта](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/CounterFunctions/autonumber.htm) внутри оператора LOAD, однако такой подход сопряжен с ограничениями при использовании оптимизированной загрузки. Для создания оптимизированной загрузки можно сначала загрузить данные из файла QVD, а затем преобразовать значения в ключи символов с помощью оператора AutoNumber.

Синтаксис:

AutoNumber \*fieldlist [Using namespace] ]

Аргументы:

Аргументы

| Аргумент | Описание |
| --- | --- |
| \*список полей | Список разделенных запятыми полей, значения которого подлежат замене уникальными целыми числами.<br><br>В именах полей можно использовать знаки подстановки ? и \*, чтобы включить все поля с совпадающими именами. Также для включения всех полей можно использовать символ \*. При использовании знаков подстановки следует заключить имена полей в кавычки. |
| пространство имен | Using параметра namespace является необязательным. Его можно использовать для создания пространства имен, где одинаковые значения в разных полях будут использовать один и тот же ключ.<br><br>Если этот параметр не используется, все поля будут иметь отдельные индексы ключей. |

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

При наличии нескольких операторов LOAD в скрипте необходимо поместить оператор AutoNumber за последним оператором LOAD.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Autonumber.htm)

#### Пример — скрипт с использованием AutoNumber

## Пример скрипта

В этом примере данные сначала загружаются без оператора AutoNumber. После этого добавляется оператор AutoNumber, чтобы продемонстрировать результат его применения.

### Данные, используемые в примере

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

```
RegionSales:
LOAD *, 
Region &'|'& Year &'|'& Month as KeyToOtherTable
INLINE
[ Region, Year, Month, Sales
North,	2014,	May,	245
North,	2014,	May,	347
North,	2014,	June,	127
South,	2014,	June,	645
South,	2013,	May, 	367
South,	2013,	May,	221
];
					
Budget:
LOAD Budget,  
Region &'|'& Year &'|'& Month as KeyToOtherTable
INLINE
[Region, Year, Month, Budget
North,  2014,   May,    200
North,  2014,   May,    350
North,  2014,   June,   150
South,  2014,   June,   500
South,  2013,   May,    300
South,  2013,   May,    200
];

//AutoNumber KeyToOtherTable;

```

Для получения дополнительной информации об использовании встроенных загрузок см. [Использование встроенных загрузок для загрузки данных](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

### Создание визуализаций

Создайте две визуализации таблиц на листе Qlik Sense. В первую таблицу добавьте измерения KeyToOtherTable, Region, Year, Month и Sales. Во вторую таблицу добавьте измерения KeyToOtherTable, Region, Year, Month и Budget .

### Результат

Таблица RegionSales

| KeyToOtherTable | Region | Year | Month | Sales |
| --- | --- | --- | --- | --- |
| North\|2014\|June | North | 2014 | June | 127 |
| North\|2014\|May | North | 2014 | May | 245 |
| North\|2014\|May | North | 2014 | May | 347 |
| South\|2013\|May | South | 2013 | May | 221 |
| South\|2013\|May | South | 2013 | May | 367 |
| South\|2014\|June | South | 2014 | June | 645 |

Таблица Budget

| KeyToOtherTable | Region | Year | Month | Budget |
| --- | --- | --- | --- | --- |
| North\|2014\|June | North | 2014 | June | 150 |
| North\|2014\|May | North | 2014 | May | 200 |
| North\|2014\|May | North | 2014 | May | 350 |
| South\|2013\|May | South | 2013 | May | 200 |
| South\|2013\|May | South | 2013 | May | 300 |
| South\|2014\|June | South | 2014 | June | 500 |

### Объяснение

В примере отображается составное поле KeyToOtherTable, которое связывает две таблицы. Оператор AutoNumber не используется. Обратите внимание на длину значений KeyToOtherTable.

### Добавление оператора AutoNumber

Раскомментируйте оператор AutoNumber в скрипте загрузки.

```
AutoNumber KeyToOtherTable;
```

### Результат

Таблица RegionSales

| KeyToOtherTable | Region | Year | Month | Sales |
| --- | --- | --- | --- | --- |
| 1 | North | 2014 | June | 127 |
| 1 | North | 2014 | May | 245 |
| 2 | North | 2014 | May | 347 |
| 3 | South | 2013 | May | 221 |
| 4 | South | 2013 | May | 367 |
| 4 | South | 2014 | June | 645 |

Таблица Budget

| KeyToOtherTable | Region | Year | Month | Budget |
| --- | --- | --- | --- | --- |
| 1 | North | 2014 | June | 150 |
| 1 | North | 2014 | May | 200 |
| 2 | North | 2014 | May | 350 |
| 3 | South | 2013 | May | 200 |
| 4 | South | 2013 | May | 300 |
| 4 | South | 2014 | June | 500 |

### Объяснение

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