Index - 指令碼與圖表函數在此頁面
Index() 會搜尋字串,以尋找第 n 次出現所提供子字串的開始位置。可選的第三個引數會提供 n 的值,如果省略則為 1。負數值會從字串的結尾開始搜尋。字串中的位置編號是由左至右 從 1 算起。
語法:
Index( text, substring[, count])
傳回的資料類型: 整數
引數
text
原始字串。
substring
要在 text 中進行搜尋的字元字串。
資訊備註 如果文字中不存在該子字串,則索引會傳回 0。
count
定義要搜尋的 substring 出現項目。例如,值 2 會搜尋第二個出現項目。負數值會從字串的結尾開始。
範例:圖表運算式
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 沒有出現第二次)
範例 - Index 基礎事項
圖表運算式
概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入指令碼
Example:
Load * inline [
InputString
abcdefg
abcdabcd ];
結果
載入資料並開啟工作表。建立新的表格並將此欄位新增為維度:
建立下列計算維度:
=Index(InputString, 'cd')
=Index(InputString, 'e')
=Index(InputString, 'b', -1)
結果表格
InputString Index(InputString, 'cd') Index(InputString, 'e') Index(InputString, 'b', -1) abcdabcd 3 0 6 abcdefg 3 5 2
具有字串 abcdabcd 的第一列傳回:
3 :第一次出現 cd
0 :因為在字串中找不到 e
6 :從字串結束開始第一次出現 b
具有字串 abcdefg 的第二列傳回:
3 :第一次出現 cd
5 :第一次出現 e
2 :從字串結束開始第一次出現 b
資訊備註 負的 count 參數反向掃描字串。但是,即使反向掃描,傳回的位置也一律由左至右表示。
載入指令碼 以下程式碼顯示如何在載入指令碼中使用該函數。
Example:
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 ];
結果表格 字串 Index_CD Index_B Index_B2 abcdefg 3 2 2 abcdabcd 3 2 6
範例 - Index 使用情境
圖表運算式
概述
客戶支援中心有一個資料集,其中包含客戶電子郵件訊息的主旨行。支援中心希望根據主旨行中出現的關鍵字分類這些電子郵件,例如 Refund 、Complaint 和 Technical Issue 。主旨行儲存在資料集中名為 EmailSubject 的欄位。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入指令碼
Example:
Load * inline [
EmailSubject
Request for a Refund - Order 12345
Technical Issue with Product XYZ
Complaint about delivery service
Follow-up on Refund Request
Technical Issue not resolved
];
結果
載入資料並開啟工作表。建立新的表格並將此欄位新增為維度:
建立下列計算維度:
結果
EmailSubject
If(Index(EmailSubject, 'Refund') > 0, 'Refund', 'Other')
Complaint about delivery service (關於配送服務的投訴)
Other (其他)
Follow-up on Refund Request (退款請求的後續處理)
Refund (退款)
Request for a Refund - Order 12345 (退款請求 - 訂單 12345)
Refund (退款)
Technical Issue not resolved (技術問題未解決)
Other (其他)
Technical Issue with Product XYZ (產品 XYZ 的技術問題)
Other (其他)
Index 函數的輸出已成功識別包含字串 Refund 的所有主旨行。此範例說明如何使用巢狀函數對資料進行分析和分類並向使用者提供價值。