# Index - 脚本和图表函数

Index() 用于搜索字符串，以便找到所提供子字符串第 n 次出现的开始位置。可选的第三个参数用于提供值 n，如果省略，则值为 1。如果为负值，则从字符串的结尾开始搜索。字符串中的位置从 1 开始编号。

语法：

Index(text, substring[, count])

返回数据类型： 整数

参数：

参数

| 参数 | 说明 |
| --- | --- |
| text | 原始字符串。 |
| substring | 在 text 中搜索的字符串。<br><br>信息注释如果文本中不存在子串，索引将返回 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（'abc' 字符串中不存在 'x'）。 |
| Index('abc', 'a', 2) | 返回 0（'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 ]; 									
```