# Index — функция скриптa и диаграммы

Index() выполняет поиск в строке, чтобы найти n-ное положение вхождения указанной подстроки. Дополнительный третий аргумент определяет значение n (1, если игнорируется). Если указано отрицательное значение, поиск выполняется с конца строки. Позиции в строке нумеруются от 1 и далее.

Синтаксис:

Index(text, substring[, count])

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

Аргументы:

Аргументы

| Аргумент | Описание |
| --- | --- |
| text | Оригинальная строка. |
| substring | Строка символов для поиска в text.<br><br>Примечание к информацииЕсли подстрока не существует в тексте, Index возвращает 0. |
| count | Определяет, какое вхождение символов substring искать. Например, значение 2 служит для поиска второго вхождения. |

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

#### Примеры и результаты:

| Пример | Результат |
| --- | --- |
| Index( 'abcdefg', 'cd' ) | Возвращает 3 |
| Index( 'abcdabcd', 'b', 2) | Возвращает 6 (второе вхождение «b») |
| Index( 'abcdabcd', 'b',-2) | Возвращает 2 (второе вхождение «b», начиная с конца) |
| `Left(   Date, Index( Date,'-') -1` ) where Date = 1997-07-14 | Возвращает 1997 |
| `Mid(   Date, Index( Date, '-', 2 ) -2, 2 )` where Date = 1997-07-14 | Возвращает 07 |
| Index('abc', 'x') | Возвращает 0 ('x' не существует в строке 'abc') |
| Index('abc', 'a', 2) | Возвращает 0 (нет 2-го вхождения «a»). |

Пример: Скрипт

```
T1:
Load 
*, 
index(String, 'cd') as Index_CD,               // returns 3  in Index_CD
index(String, 'b') as Index_B,                // returns 2 in Index_B
index(String, 'b', -1) as Index_B2;           // returns 2 or 6 in Index_B2
Load * inline [
String
abcdefg
abcdabcd ]; 									
```