全部展开/折叠
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 字符串值中提取出两个字母的国家代码。