# 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 ]; 									
```