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 没有第二次出现)。
示例 - 索引基本原理
图表表达式
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
加载脚本
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 ];
结果表 String 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
Refund
Technical Issue not resolved
Other
Technical Issue with Product XYZ
Other
Index 函数的输出已成功识别出包含字符串 Refund 的所有主题行。这是一个如何使用嵌套函数分析和分类数据并向用户传递值的示例。