Mid - 脚本和图表函数
Mid() 返回从第二个参数“start”定义的字符位置开始的输入字符串的一部分,并返回第三个参数“count”定义的字符数量。如果省略“count”,则返回输入字符串的剩余部分。输入字符串的第一个字符的编号为 1。
语法:
Mid(text, start[, count])
返回数据类型: 字符串
参数
text
|
原始字符串。 |
start
|
定义 text 中要包含的第一个字符的位置的整数。 |
count
|
定义输出字符串的字符串长度。如果省略,则包含从 start 所定义位置开始的所有字符。 |
示例:图表表达式
Mid( 'abcdef',3 )
|
返回 cdef |
Mid( 'abcdef',3, 2 )
|
返回 cd |
示例 - Mid 基本原理
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
加载到名为 Example 的数据表中的数据集。
-
数据表中有以下字段:
加载脚本
Example:
Load * inline [
InputText, StartPosition, CharacterCount
abcdef, 3, 2
abcdef, 2, 3
210714, 3, 2
210714, 2, 3
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
-
InputText
-
StartPosition
-
CharacterCount
创建以下计算维度:
-
=mid(InputText,StartPosition),用于从 StartPosition 字段中的值开始计算要从 InputText 提取的字符。由于未提供 Count 参数,该函数将返回从 StartPosition 值到 InputString 末尾的所有字符。
-
=mid(InputText,StartPosition,CharacterCount),用于从 StartPosition 字段中的值开始计算要从 InputText 提取的字符。CharacterCount 中的值决定了从 StartPosition 字段中的值开始返回的字符数。
结果表
InputText |
StartPosition |
CharacterCount
|
Mid(InputText,StartPosition) |
Mid(InputText,StartPosition,CharacterCount |
abcdef |
2 |
3 |
bcdef |
bcd |
abcdef |
3 |
2 |
cdef |
cd |
20210714 |
2 |
3 |
10714 |
107 |
20210714 |
3 |
2 |
0714 |
07
|
第一行返回第一个表达式的值 bcdef。表达式从位置 2 开始,返回所有字符,因为未设置参数 Count。第二个表达式也从位置 2 开始,但只返回字符 bcd,因为 Count 参数是 2。
第二行返回第一个表达式的值 cdef。表达式从位置 3 开始,返回所有字符,因为未设置参数 Count。第二个表达式也从位置 3 开始,但只返回字符 cd,因为 Count 参数是 2。
第三行返回第一个表达式的值 10714。表达式从位置 2 开始,返回所有字符,因为未设置参数 Count。第二个表达式也从位置 2 开始,但只返回字符 107,因为 Count 参数是 3。
第四行返回第一个表达式的值 0714。表达式从位置 3 开始,返回所有字符,因为未设置参数 Count。第二个表达式也从位置 2 开始,但只返回字符 07,因为 Count 参数是 2。
以下代码显示了如何在加载脚本中使用该函数。
Example:
Load *,
mid(Text,StartPosition) as Mid1,
mid(Text,StartPosition,Count) as Mid2;
Load * inline [
Text, StartPosition, Count
'abcdef', 3, 2
'abcdef', 2, 3
'210714', 3, 2
'210714', 2, 3
];
结果表
Text | StartPosition | Mid1 | Count | Mid2 |
abcdef | 3 | cdef | 2 | cd |
abcdef | 2 | bcdef | 3 | bcd |
210714 | 3 | 0714 | 2 | 07 |
210714 | 2 | 10714 | 3 | 107 |
示例 - Mid 场景
概述
数据源包含一个名为 OrderID 的列,该列使用以下结构化格式:ORDYYYY-COUNTRYCODE-ORDERNUMBER。为了满足报告要求,您必须提取国家代码并将其作为单独的列显示。
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
加载到名为 Orders 的数据表中的数据集。
-
数据表中有一个名为 OrderID 的字段。
加载脚本
Orders:
Load * inline [
OrderID
ORD2024-US-123456
ORD2024-UK-654321
ORD2024-CA-789123
];
结果
加载数据并打开工作表。创建新表并将该字段添加为维度:
创建以下计算维度:
结果表
OrderID |
Mid(OrderID, 9, 2) |
ORD2024-CA-789123 |
CA |
ORD2024-UK-654321 |
UK |
ORD2024-US-123456 |
US |
Mid 函数的输出已成功从 OrderID 字符串值中提取出两个字母的国家代码。