如何根据字符取内容
场景描述
主要是用在各类编号或URL等长字符串中,取出中间的关键值。
取两个相同字符之间的内容
以“采购-2021-0001”为例,想要取出字符“-”之间的内容,即2021。
涉及到的函数
SEARCHE(),需要找到目标字符
LEN(),计算当前字符长度
MID(),提取字符间的内容
LEFT(),左起指定位置取内容
RIGHT(),右起指定位置取内容
字段设置
设置以下字段,均为单行文本,“待取内容字段”,“第一个字符前的内容”,“中间内容”,“第二个字符后的内容”

公式设置
取第一个“-”前的内容,公式设置为:

公式说明:
-
SEARCH()查找字段中,第一个“-”的位置
-
NUM()将位置值转为数字值,方便执行计算,-1的意义是:查找到的当前位置结果包含了第一个字符“-”,因此减1去掉符号“-”,只保留内容。
效果展示:

取两个“-”之间的内容,公式设置为:

公式说明:
MID函数需要3个参数,MID(字段,取值开始的位置,取值的位数)。
- 取值起始位置,从第一个“-”后的内容开始算起,+1的意义是:查找到的当前位置结果包含了第一个字符“-”,因此+1是从“-”后开始取内容
- 第三部分内容,是取值的位数,从第一个“-”查起,找到第二个“-”的位置,即从第一个“-”开始取,至第二个“-”结束,至此,两个“-”之间的内容就可以提取出来了。
效果展示:

取第二个“-”后的内容,公式设置为:

公式说明:
- 从右边开始取,字段总字符数减去第一个字符前的字符数+中间内容的字符数量,再减去2个“-”占用的位数,剩下的内容即为第二个字符后面的内容
实现效果

取两个不同字符之间的内容(固定字符顺序)
以 123456-ABCD?!!! 为例,取出“-”与“?”之间的内容,即ABCD。
处理方式与上述操作相同,不过中间内容的公式需要修改一下,调整如下:

至此,可以实现提取两个不同字符之间的内容了。
实现效果
